轉(zhuǎn)載:本文首發(fā)于【知乎】嫉鲸,作者: 聆風(fēng)散 ?西安電子科技大學(xué) ?通信工程
Tips:全文898字产上,閱讀時(shí)間3分鐘
《百萬(wàn)英雄》是一檔全民知識(shí)互動(dòng)游戲棵磷,在《百萬(wàn)英雄》里每場(chǎng)12道題目全部回答正確的人,將瓜分獎(jiǎng)金晋涣。
后續(xù)更新在我的github上泽本,歡迎大牛前來(lái)P.R:
gitee倉(cāng)庫(kù)地址:壞壞/MillionHero - 碼云 Gitee.com
Update
2018-01-10 :現(xiàn)在會(huì)單獨(dú)為問(wèn)題打開(kāi)一個(gè)網(wǎng)頁(yè)進(jìn)行展示搜索結(jié)果
2018-01-10 :B站視頻https://www.bilibili.com/video/av18152515/
2018-01-10 : 一直讀取圖片的話會(huì)報(bào)異常,現(xiàn)在改為輸入回車才回開(kāi)始姻僧。更加穩(wěn)定 嘗試了一下午漢王的OCR,識(shí)別率還是比較低啊蒲牧。 但是tessOCR運(yùn)行時(shí)間確實(shí)有點(diǎn)長(zhǎng)了撇贺。有好的OCR推薦下
2018-01-09 : 修改了啟用多線程后帶來(lái)的bug,新增gitee倉(cāng)庫(kù)地址(國(guó)內(nèi)下載更快)
常見(jiàn)問(wèn)題
1冰抢、項(xiàng)目構(gòu)建問(wèn)題:
IDE建議用idea松嘶,從github導(dǎo)入后,在右側(cè)的Maven project中添加目錄根部的 pom.xml文件即可挎扰。
2翠订、tessOCR:
只是調(diào)用了一下,在pom已經(jīng)導(dǎo)入了使用的工具包遵倦,訓(xùn)練機(jī)在tessdata里面尽超,不需要配置。
3梧躺、ADB驅(qū)動(dòng)相關(guān):
使用ADB需要對(duì)應(yīng)的手機(jī)驅(qū)動(dòng)的似谁。最簡(jiǎn)單驗(yàn)證ADB的方法:
在adb目錄里面打開(kāi)命令行輸入 adb devices 看下有沒(méi)有設(shè)備,有的話即可掠哥。
游戲模式
一共12道題巩踏,全部答對(duì)就可以平分獎(jiǎng)金
如果可以把直播中的問(wèn)題和答案提取出來(lái),然后百度续搀,然后統(tǒng)計(jì)一下哪個(gè)更相關(guān)塞琼,就可以輔助你答題了。當(dāng)然也可以直接把百度出來(lái)題目和答案都展示出來(lái)禁舷。本文用的第一種簡(jiǎn)單粗暴彪杉。
工具介紹
JAVA8
Android 手機(jī)
Adb 驅(qū)動(dòng)
原理說(shuō)明
將手機(jī)點(diǎn)擊到直播界面(在這里我們先打開(kāi)一張圖片);
用Adb 工具獲取當(dāng)前手機(jī)截圖牵咙,并用adb將截圖pull上來(lái)
adb shell screencap -p /sdcard/1.png? ? adb pull /sdcard/1.png .
用tessOCR進(jìn)行圖像識(shí)別在讶,提取文字;
將文字中的問(wèn)題和答案提取出來(lái)霜大;
使用百度搜索并統(tǒng)計(jì)搜索得到結(jié)果數(shù)量
問(wèn)題+各個(gè)答案count(q&a)构哺;
問(wèn)題 count(q);
答案 count(a);
計(jì)算匹配值pmi: pmi[i]=count(q&a[i])/(count(q)*count(a[i]))
選擇pmi值最高的為答案曙强。
步驟
安卓手機(jī)打開(kāi)USB調(diào)試残拐,設(shè)置》開(kāi)發(fā)者選項(xiàng)》USB調(diào)試
電腦與手機(jī)USB線連接,確保執(zhí)行adb devices可以找到設(shè)備id
打開(kāi)百萬(wàn)直播
運(yùn)行我們的java程序碟嘴,當(dāng)彈出題目時(shí)溪食,輸入回車
注意程序中的adb驅(qū)動(dòng)目錄要更換成自己的目錄
我的屏幕是1920*1080,如果是別的分辨率娜扇,暫時(shí)需要修改一下代碼中的圖片參數(shù)等错沃。
實(shí)驗(yàn)結(jié)果
PS:
無(wú)奈本人在出差,筆記本速度和網(wǎng)速都比較慢雀瓢,比較好的電腦和網(wǎng)速肯定能很大的提升枢析。
TODO
1、可以增加一個(gè)圖形化界面刃麸,分別對(duì)題目和答案進(jìn)行搜索并進(jìn)行展示醒叁。