試卷手寫體擦除android sdk接入
說明
Hi,您好,歡迎使用有道智云試卷手寫體擦除Android SDK。
本文檔主要針對需要集成試卷手寫體擦除 Android SDK的開發(fā)工程師,詳細(xì)描述試卷手寫體擦除能力及集成過程。
如果您有與我們商務(wù)合作的需求,可以通過以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云語音技術(shù)交流QQ群:861723255
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建 Android 應(yīng)用,并綁定服務(wù);如果您還沒有,請按照 新手指南 操作。
平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 作試卷手寫體擦除服務(wù)報價 。
概念解釋
試卷手寫體擦除服務(wù):將圖片自動識別并且去除圖片上的手寫作答痕跡,返回完整的空白試卷的版面信息。試卷擦除不區(qū)分語種、不區(qū)分學(xué)科,使用范圍廣,是業(yè)內(nèi)識別準(zhǔn)確率最高的接口。此服務(wù)通用性強,對不同光照與模糊情況下的圖片都有很好的處理效果。在教育學(xué)習(xí)領(lǐng)域有較強的應(yīng)用,同時支持企業(yè)服務(wù)等需要去除手寫等場景
功能介紹
試卷手寫體擦除安卓sdk 是有道智云開放平臺提供的云服務(wù)之一,是試卷手寫體擦除接口的安卓實現(xiàn)。
流程介紹
圖像數(shù)據(jù) => 轉(zhuǎn)換成Base64編碼 => 網(wǎng)絡(luò)請求 => 返回結(jié)果(Base64編碼)=> 圖像數(shù)據(jù)
兼容性
支持設(shè)備:運行了 Android 9及以上系統(tǒng)的 Android 設(shè)備
SDK集成指南
集成前提
開始集成SDK之前開發(fā)者需要登錄 有道智云平臺 ,創(chuàng)建應(yīng)用獲取應(yīng)用ID(或者通過運營人員獲取應(yīng)用ID),以便使用作文批改服務(wù)。
注:應(yīng)用ID即Appkey,需要安卓SDK類型。
Demo運行步驟
根據(jù)官網(wǎng)控制臺 提示,直接下載SDK,SDK中包含簡易可運行的Demo。如下圖所示:
lib文件夾下為試卷擦除的jar包
traslateSdk為試卷擦除的demo
接入文檔和demo運行需要修改位置的Readme.txt
1.使用AndroidStudio 導(dǎo)入項目
打開Redame.txt,按步驟修改demo即可
1.修改Appkey和AppSecret
2.build.gradle 修成為自己Appkey所對應(yīng)的包名
3.修改完成之后,連接設(shè)備就可以運行了
4.demo啟動
5.選擇要擦除的試卷圖片
6.點試卷擦除按鈕
SDK初始化
使用作文批改SDK,請在程序的Application中調(diào)用SDK初始化代碼,可以參考demo中MyApplication
注:appKey即應(yīng)用id 。sdk請使用sdk類型的appkey
//TODO 修改成智云官網(wǎng)申請的AppKey和AppSecret
private val MY_APP_KEY = ""
private val appSecret = ""
override fun onCreate() {
super.onCreate()
YouDaoApplication.init(this,MY_APP_KEY,appSecret)
}
功能集成
試卷手寫體擦除
OcrWritingErase.mTimeout = 3 *1000 //設(shè)置超時
OcrWritingErase.erase(
q =imageBase64, //要擦除試卷的圖片的base64
angleFlag = true, //是否進(jìn)行360角度識別
listener= object : EraseListener {
override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
Log.e(TAG, "onError: errorCode:$errorCode,msg:$msg,requestId:$requestId", )
}
override fun onResult(originalImg:String,eraseEnhanceImg:String, requestId: String) {
runOnUiThread {
binding.button3.isEnabled =false
lifecycleScope.launch{
withContext(Dispatchers.Main){
binding.button3.isEnabled =true
val bytes: ByteArray = Base64.decode(eraseEnhanceImg, Base64.DEFAULT)
binding.imageEraseAfter.setImageBitmap(BitmapFactory.decodeByteArray(bytes,0,bytes.size))
}
}
}
}
}
)