專利名稱:一種應(yīng)用于即時(shí)通訊工具的表情機(jī)器人的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是一種基于即時(shí)通訊工具的表情機(jī)器人,具體涉及屏幕捕捉、圖像識(shí)別技術(shù)領(lǐng)域。
背景技術(shù):
即時(shí)通訊工具又稱為即時(shí)聊天工具,是一種基于互聯(lián)網(wǎng)的服務(wù),經(jīng)過十幾年的發(fā)展,如今已經(jīng)擁有大量的固定用戶,滲透到我們生活和工作中的方方面面。表情符號(hào)誕生在互聯(lián)網(wǎng),原本只是一種網(wǎng)絡(luò)次文化,但隨著網(wǎng)絡(luò)的迅速發(fā)展與普及,它得到了人們的廣泛接
受。 一般的即時(shí)通訊工具都擁有插入表情符號(hào)的功能,極大方便了用戶的表達(dá),增強(qiáng)了交流樂趣和用戶體驗(yàn)。目前,表情符號(hào)主要朝著更加多元,更加生動(dòng)和復(fù)雜的方向發(fā)展,本發(fā)明提出了一條創(chuàng)造性的發(fā)展道路讓表情符號(hào)更加真實(shí)化。該方案能夠?qū)磿r(shí)通訊工具的窗口界面進(jìn)行監(jiān)測(cè),然后識(shí)別用戶使用的表情符號(hào)的含義,并且針對(duì)被識(shí)別的表情符號(hào)做出符合該表情符號(hào)含義的響應(yīng)。通過表情機(jī)器人用戶可以更加直觀地感受到聊天過程中所使用的表情符號(hào),由此來增加即時(shí)通訊用戶的體驗(yàn)感和樂趣。這是一個(gè)創(chuàng)新性的產(chǎn)品,鮮有對(duì)前人經(jīng)驗(yàn)的借鑒。在進(jìn)行表情符號(hào)識(shí)別方案的設(shè)計(jì)時(shí),首先想到的是對(duì)即時(shí)通訊工具傳輸?shù)臄?shù)據(jù)包進(jìn)行解密分析,從中提取出表情符號(hào)的代碼,從而實(shí)現(xiàn)識(shí)別。但是目前的即時(shí)通訊工具都會(huì)在聊天內(nèi)容的傳送過程中對(duì)其進(jìn)行很復(fù)雜加密,破譯密鑰需要比較長的時(shí)間,難度較大,而且即時(shí)通訊工具通常會(huì)不定期的升級(jí),每次升級(jí)都會(huì)重新設(shè)定密鑰,因此即時(shí)通訊工具升級(jí)后需要重新破譯密鑰的缺陷,這就帶來了該方案的需要不斷破譯密鑰的缺陷、復(fù)雜程度高、實(shí)時(shí)性不佳,從而無法批量的生產(chǎn)和推廣。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種應(yīng)用于即時(shí)通訊工具的表情機(jī)器人,它可以實(shí)時(shí)地識(shí)別用戶所使用的表情符號(hào),并且做出與該表情符號(hào)所代表含義一樣的響應(yīng)。而且,其表情識(shí)別方法并非采用對(duì)即時(shí)通訊工具傳輸?shù)臄?shù)據(jù)包進(jìn)行解密分析的方法,避免了采用這種方案所帶來的復(fù)雜程度高、實(shí)時(shí)性不佳、即時(shí)通訊工具升級(jí)后需要重新破譯密鑰的缺陷。該方法是這樣實(shí)現(xiàn)的—種基于即時(shí)通訊工具的表情機(jī)器人,包括聊天窗口監(jiān)測(cè)模塊、表情符號(hào)定位模塊、表情符號(hào)識(shí)別模塊和響應(yīng)模塊;所述聊天窗口監(jiān)測(cè)模塊,用于在確定當(dāng)前焦點(diǎn)窗口是即時(shí)通訊工具的聊天窗口后,對(duì)所述聊天窗口進(jìn)行監(jiān)測(cè),定時(shí)或當(dāng)用戶有新的聊天消息顯示出來時(shí),將聊天窗口的圖像截取下來,并保存為圖片;所述表情符號(hào)定位模塊,用于分析聊天窗口監(jiān)測(cè)模塊所截取下來的圖片,尋找其中的表情符號(hào),找到表情符號(hào)之后,將表情符號(hào)的位置發(fā)送給所述表情符號(hào)識(shí)別模塊;
所述表情符號(hào)識(shí)別模塊,用于當(dāng)接收到表情符號(hào)定位模塊發(fā)過來的表情符號(hào)的位置后,將該位置的表情符號(hào)與現(xiàn)有表情符號(hào)庫中的表情符號(hào)進(jìn)行對(duì)比,從而確定該表情符號(hào)所代表的意義,然后將結(jié)果發(fā)送給響應(yīng)模塊;所述響應(yīng)模塊,用于在接收到表情符號(hào)識(shí)別模塊發(fā)送過來的結(jié)果后,通過設(shè)定的表現(xiàn)方法進(jìn)行響應(yīng)。其中,所述響應(yīng)模塊通過聲音、圖像和/或動(dòng)作進(jìn)行響應(yīng)。優(yōu)選地,所述表情符號(hào)定位模塊包括切割模塊、灰度化模塊、平滑模塊和哈夫Hough檢測(cè)模塊切割模塊,用于根據(jù)對(duì)話欄在聊天窗口中的位置,從聊天窗口的圖像中將對(duì)話欄的圖像切割出來,將切割出來的圖像發(fā)送給灰度化模塊;灰度化模塊,用于將所接收的圖像進(jìn)行灰度化出來,得到灰度圖,發(fā)送給平滑模塊;平滑模塊,用于對(duì)接收到的灰度圖進(jìn)行高斯平滑處理;Hough檢測(cè)模塊,用于對(duì)高斯平滑處理后的圖像進(jìn)行Hough變換,檢測(cè)出圓形的表情符號(hào)所在的位置;只輸出識(shí)別出的表情符號(hào)中坐標(biāo)x、y都是最大的表情符號(hào)的位置;其中X軸、y軸以對(duì)話欄的左上角為零點(diǎn)。優(yōu)選地,所述Hough檢測(cè)模塊的Hough變換從對(duì)話欄的右下角開始,按照從右至左,從下至上的順序計(jì)算,當(dāng)檢測(cè)到第一個(gè)圓時(shí),輸出圓心位置,并停止檢測(cè)。優(yōu)選地,所述表情符號(hào)識(shí)別模塊包括提取模塊、匹配模塊和識(shí)別模塊;所述提取模塊,用于根據(jù)表情符號(hào)定位模塊輸出的位置,從切割模塊獲得的所述對(duì)話欄的圖像中獲得表情符號(hào)圖像,發(fā)送給匹配模塊;所述匹配模塊,用于將所接收的表情符號(hào)圖像作為模板,將預(yù)先存儲(chǔ)的包含所有默認(rèn)表情符號(hào)的圖像作為全局圖像,然后進(jìn)行模板匹配,最后找出表情符號(hào)圖像在全局圖像中的位置;所述識(shí)別模塊,用于根據(jù)已知的全局圖像中每個(gè)默認(rèn)表情符號(hào)的位置范圍和表情含義,判斷所述匹配模塊找出的表情符號(hào)圖像的位置對(duì)應(yīng)哪個(gè)表情含義,將表情含義發(fā)送給響應(yīng)模塊。有益效果本發(fā)明提供了一種應(yīng)用于即時(shí)通訊工具的表情機(jī)器人,可以實(shí)時(shí)地識(shí)別用戶所使用的表情符號(hào),并且做出與該表情符號(hào)所代表含義一樣的響應(yīng),而且更重要的是,該表情及其人的表情識(shí)別方法并非采用對(duì)即時(shí)通訊工具傳輸?shù)臄?shù)據(jù)包進(jìn)行解密分析的方法,即時(shí)通訊工具升級(jí)后不需要重新破譯密鑰,因此通用性好,適用于各種即時(shí)通訊工具。而且該方法依靠截圖進(jìn)行表情識(shí)別,方法簡單,可以借助很多現(xiàn)有的圖像處理方法,實(shí)現(xiàn)起來十分簡單,而且計(jì)算量也不大,從而有利于提高表情識(shí)別的實(shí)時(shí)性。其次,在Hough圓檢測(cè)后可能會(huì)得到多個(gè)位于不同位置的圓,這里根據(jù)即時(shí)通訊工具的特點(diǎn)只輸出x、y最大的圓的位置,從而避免了多個(gè)圓位置輸出帶來的后續(xù)匹配計(jì)算量多,響應(yīng)混亂等缺陷。再次,在進(jìn)行Hough檢測(cè)計(jì)算是,直接從對(duì)話欄的右下角開始計(jì)算,按照從右到左,從下到上的順序,將第一個(gè)檢測(cè)到的圓位置輸出,且不需要進(jìn)行后續(xù)計(jì)算,這樣可以減、少計(jì)算量。
圖I為本發(fā)明的系統(tǒng)功能模塊圖。圖2為截圖模塊流程圖。圖3為截圖模塊效果圖。圖4為QQ默認(rèn)表情符號(hào)圖。圖5為表情符號(hào)定位模塊處理流程圖。圖6為QQ聊天窗口分解圖。
圖7為灰度化后的效果圖。圖8為高斯平滑之后的效果圖。圖9為表情符號(hào)定位結(jié)果圖。圖10為表情符號(hào)識(shí)別模塊流程圖。圖11為QQ全部默認(rèn)表情符號(hào)劃分圖。圖12為表情符號(hào)識(shí)別結(jié)果圖。
具體實(shí)施例方式下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明采用了一種無需對(duì)聊天內(nèi)容進(jìn)行解密分析的方法,通過對(duì)聊天窗口監(jiān)測(cè)截圖,分析出表情符號(hào),稱為截圖比對(duì)法。該方法思路是,首先對(duì)即時(shí)通訊工具用戶的聊天窗口進(jìn)行監(jiān)測(cè),然后選取合適的時(shí)機(jī)進(jìn)行截圖并保存,接下來對(duì)聊天窗口的圖像進(jìn)行分析比對(duì),找出表情符號(hào)位置,最后識(shí)別出表情符號(hào)所代表的含義。由于表情符號(hào)的大小是固定的,所以可以采取模式識(shí)別中模板匹配的方案來實(shí)現(xiàn)。該截圖比對(duì)法的優(yōu)勢(shì)是繞過了破解加密消息的環(huán)節(jié),因此方法簡單、實(shí)時(shí)性好,并且可以很容易的做到跨即時(shí)通訊工具。圖I為本發(fā)明即時(shí)通訊工具的表情機(jī)器人的組成框圖,如圖I所示,該表情機(jī)器人包括聊天窗口監(jiān)測(cè)模塊、表情符號(hào)定位模塊、表情符號(hào)識(shí)別模塊和響應(yīng)模塊。其中,聊天窗口監(jiān)測(cè)模塊,用于在確定當(dāng)前焦點(diǎn)窗口是即時(shí)通訊工具的聊天窗口后,對(duì)所述聊天窗口進(jìn)行監(jiān)測(cè),定時(shí)或當(dāng)用戶有新的聊天消息顯示出來時(shí),將聊天窗口的圖像截取下來,并保存為圖片;其中,焦點(diǎn)窗口是指用戶當(dāng)前正在操作的窗口,通過Windows下的API函數(shù)可以很容易的判斷出焦點(diǎn)窗口。表情符號(hào)定位模塊,用于分析聊天窗口監(jiān)測(cè)模塊所截取下來的圖片,尋找其中的表情符號(hào),找到表情符號(hào)之后,將表情符號(hào)的位置發(fā)送給所述表情符號(hào)識(shí)別模塊;表情符號(hào)識(shí)別模塊,用于當(dāng)接收到表情符號(hào)定位模塊發(fā)過來的表情符號(hào)的位置后,將該位置的表情符號(hào)與現(xiàn)有表情符號(hào)庫中的表情符號(hào)進(jìn)行對(duì)比,從而確定該表情符號(hào)所代表的意義,然后將結(jié)果發(fā)送給響應(yīng)模塊;響應(yīng)模塊,用于在接收到表情符號(hào)識(shí)別模塊發(fā)送過來的結(jié)果后,通過設(shè)定的表現(xiàn)方法進(jìn)行響應(yīng)。
下面針對(duì)每個(gè)模塊的功能進(jìn)行詳細(xì)描述。 聊天窗口監(jiān)測(cè)模塊聊天窗口監(jiān)測(cè)截圖模塊的主要功能是對(duì)用戶的聊天窗口進(jìn)行監(jiān)視,當(dāng)用戶有新的聊天消息顯示出來時(shí),就將聊天窗口截取下來,并保存為圖片,以備后期的處理和分析,聊天窗口監(jiān)測(cè)模塊工作流程如圖2所示。以騰訊公司的QQ為例,聊天窗口監(jiān)測(cè)模塊大致的流程是這樣,當(dāng)系統(tǒng)運(yùn)行時(shí)首先判斷用戶當(dāng)前的焦點(diǎn)窗口是不是QQ聊天窗口,如果是就進(jìn)入下一步,如果不是就不做響應(yīng)。當(dāng)已經(jīng)確定用戶的焦點(diǎn)窗口是QQ聊天窗口后,需要判斷是否有新的消息進(jìn)入,如果有就截圖并保存下來。或者可以采用定時(shí)截圖的辦法,每隔一個(gè)固定的時(shí)間就對(duì)聊天窗口截圖。對(duì)于是否有新聊天消息的加入可以通過監(jiān)控聊天窗口上圖像的變化實(shí)現(xiàn),當(dāng)聊天窗口內(nèi)圖像變化時(shí),認(rèn)為有新的聊天消息進(jìn)入。截圖模塊的效果如圖3所示。 表情符號(hào)定位模塊·通過聊天窗口監(jiān)測(cè)模塊得到了 QQ聊天窗口的截圖,接下來面臨的問題就是怎么樣分析截取到的圖片中是否含有表情符號(hào),以及如何確定表情符號(hào)的位置。首先分析QQ自帶的默認(rèn)表情符號(hào),如圖4所示。出于實(shí)用性和技術(shù)原因的考慮,本系統(tǒng)目前只考慮支持QQ默認(rèn)表情中的圓形經(jīng)典表情符號(hào)。這一系列表情符號(hào)有兩個(gè)很突出的特征I)形狀上是圓形。2)都以黃色為主要顏色??紤]到用戶在聊天時(shí)所用的主要是漢字、英文字母、數(shù)字、表情符號(hào),前三項(xiàng)作為識(shí)別過程中的干擾項(xiàng),不具備表情符號(hào)的圓形的形狀特征,但是QQ用戶可以自定義聊天文本的顏色,所以也可能具有黃色這個(gè)特征。在綜合考慮之后決定通過圓形這個(gè)特征來標(biāo)記并提取表情符號(hào),這也是大多及時(shí)通訊工具所使用的表情符號(hào)的特征。前面分析了表情符號(hào)不同于漢子、英文字母、數(shù)字的特征,這里就需要用到一些圖像處理的技術(shù)來尋找圓形的表情符號(hào),如圖5所示,首先要對(duì)圖像進(jìn)行切割的處理,除去不需要的干擾區(qū)域可以提高后續(xù)處理的效率,切割之后是對(duì)圖像進(jìn)行灰度化和圖像平滑,這兩個(gè)流程的目的都是增強(qiáng)圖像,以便提高檢測(cè)的精確率,最后就是檢測(cè)表情符號(hào),用到了Hough圓檢測(cè)函數(shù),結(jié)果就是返回表情符號(hào)的位置即圓形的坐標(biāo)。因此,該表情符號(hào)定位模塊包括切割模塊、灰度化模塊、平滑模塊和Hough檢測(cè)模塊。切割模塊,用于根據(jù)對(duì)話欄在聊天窗口中的位置,從聊天窗口的圖像中將對(duì)話欄的圖像切割出來,將切割出來的圖像發(fā)送給灰度化模塊。仍以QQ為例,QQ聊天窗口的截圖如圖6所示,首先來分析一下輸入的截圖,可以看到QQ聊天窗口主要可以分為四個(gè)區(qū)域,用紅線將他們劃分出來,分別為功能欄、聊天記錄顯示窗口、輸入欄、QQ秀欄,很明顯在本系統(tǒng)里需要的是聊天記錄顯示窗口的信息,其它三個(gè)區(qū)域不會(huì)出現(xiàn)表情符號(hào)。所以,切割這一步目的是將聊天記錄顯示窗口從其它三個(gè)區(qū)域的包圍中分離出來,通過實(shí)驗(yàn)我發(fā)現(xiàn)雖然QQ聊天窗口的大小是可以根據(jù)用戶的需要而改變的,但是功能欄的高輸入欄的高”以及QQ秀欄的寬,W51 ”,是一個(gè)固定值,不會(huì)隨著窗口的縮放而改變。經(jīng)過測(cè)量H功能=105像素,11輸入=155像素,W秀=145像素。根據(jù)這三個(gè)數(shù)據(jù)很容易就可以推算出聊天記錄顯示窗口的起始坐標(biāo)為(O,105),右下角坐標(biāo)為(W-145,H-155)其中W為整個(gè)截圖的寬,H為整個(gè)截圖的高。通過這些數(shù)據(jù)很容易就可以將聊天記錄顯示窗口單獨(dú)顯示出來了,這樣做剔除了很大的干擾區(qū)域,使得后續(xù)的處理更加高效?;叶然K,用于將所接收的圖像進(jìn)行灰度化出來,得到灰度圖,發(fā)送給平滑模塊。
灰度化是將彩色圖像轉(zhuǎn)換為灰度圖像。在本系統(tǒng)中的截圖模塊所獲取的圖像是彩色圖像,彩色圖像是這樣一種圖像,它的每個(gè)像素點(diǎn)都對(duì)應(yīng)有三個(gè)分量(R,G,B),這三個(gè)分量代表紅色、綠色、藍(lán)色,每個(gè)分量可以取0到255中的整數(shù)值,每一組值就代表了一個(gè)顏色,這樣一個(gè)像素點(diǎn)可以有1600多萬的顏色的取值選擇,即使是對(duì)于計(jì)算機(jī)來說這個(gè)數(shù)字也是十分龐大的,所以為了方便處理需要對(duì)圖像進(jìn)行灰度化,灰度圖像是這樣一種圖像,它的像素點(diǎn)也由R、G、B三個(gè)分量來表示,但是這三個(gè)分量的取值相同,可見,在灰度圖像中一個(gè)像素點(diǎn)的取值范圍只有255種,并且跟彩色圖像一樣它仍然可以反映整幅圖像的整體和局部的色度和亮度等級(jí)的分布和特征。所以在對(duì)數(shù)字圖像進(jìn)行處理時(shí),一般先將被處理對(duì)象轉(zhuǎn)換成灰度圖像,這樣做可以大大減少后續(xù)處理的計(jì)算量?;叶然Y(jié)果如圖7所示。平滑模塊,用于對(duì)接收到的灰度圖進(jìn)行高斯平滑處理。圖像平滑的主要目的是為了消除原圖像中的噪聲,并且盡量保持原圖像的邊緣輪廓和線條。圖像中的噪聲并不僅僅限于人類眼睛所能覺察到的圖像失真和變形,很多噪聲只有在進(jìn)行計(jì)算機(jī)圖像處理是才能被發(fā)現(xiàn),并且這些噪聲都是隨機(jī)分布,大小、形狀也都是不規(guī)則的。圖像平滑的方法有很多種,包括線性、非線性平滑和銳化處理,偽彩色處理,濾波等。利用高斯平滑去除雜亂無章并且隨機(jī)分布的噪聲時(shí),會(huì)收到比其它幾種平滑方法更好的效果,最重要的一點(diǎn)是它可以得到比較好的圖像邊緣,這樣在后續(xù)進(jìn)行圓形檢測(cè)時(shí)可以有不錯(cuò)的精確度。所以對(duì)輸入的圖像進(jìn)行高斯平滑處理,處理后的效果如圖8所示。經(jīng)過高斯平滑處理這一步之后的圖像,是一個(gè)完成去噪的灰度圖像,已經(jīng)具備了進(jìn)行圓形檢測(cè)的前置條件。當(dāng)在圖像處理中需要從圖像中識(shí)別簡單幾何圖案時(shí),有一種基本的方法叫做哈夫(Hough)變換,Hough變換是實(shí)現(xiàn)邊緣檢測(cè)的一種基本的有效方法,是圖像處理中從原圖像中識(shí)別出簡單幾何形狀的基本方法之一。Hough變換的基本原理是利用點(diǎn)與線在數(shù)學(xué)中的對(duì)偶性,將原始圖像空間中的選定點(diǎn)變換到參數(shù)空間的的一條曲線或曲面,具有同一參量特征的點(diǎn)經(jīng)過變換后在參量空間中相交,這樣就可以通過判斷交點(diǎn)處的積累程度即峰值來完成對(duì)特征曲線的檢測(cè)。利用Hough變換可以把原始圖像中的曲線檢測(cè)問題轉(zhuǎn)化為尋找參數(shù)空間中的峰值問題,也就是把檢測(cè)整體特性轉(zhuǎn)化為檢測(cè)局部特性。基于參量性質(zhì)的不同,Hough變換可以檢測(cè)直線、圓、橢圓、曲線等。Hough變換是一種具有全局性的檢測(cè)方法,它對(duì)隨機(jī)噪聲和部分遮蓋現(xiàn)象不敏感,具有極強(qiáng)的抗干擾能力,能夠很好的抑制數(shù)據(jù)點(diǎn)過于集中所產(chǎn)生的干擾。Hough變換在檢測(cè)已知形狀的目標(biāo)方面具有良好的容錯(cuò)性和魯棒性,即使目標(biāo)有缺損或污染也能夠被正確的識(shí)別。所以本發(fā)明采用了這種方法來檢測(cè)表情符號(hào)的圓形。由于表情符號(hào)的半徑是已知的約為25個(gè)像素點(diǎn),所以只要定位到圓心就可以將表情符號(hào)找到并分離出來,效果如圖9所
/Jn o為了測(cè)試本方法的有效性和抗干擾能力,特別在截圖里包含了數(shù)字、英文字母、漢字等主要的干擾項(xiàng)目,為了方便觀察檢測(cè)結(jié)果,這里將檢測(cè)結(jié)果進(jìn)行了輸出和標(biāo)識(shí)。結(jié)果圖中檢測(cè)出了兩個(gè)圓形,并且這兩個(gè)圓形正是表情符號(hào),圓形的圓心用綠色點(diǎn)標(biāo)識(shí)了出來,并且將圓心坐標(biāo)進(jìn)行了輸出,結(jié)果基本與預(yù)期的一樣。當(dāng)定位模塊檢測(cè)完一副截圖之后,會(huì)有幾秒的時(shí)間,來等待新截圖的輸入,由于這個(gè)時(shí)間很短,所以,新截圖中的聊天記錄內(nèi)容會(huì)與以前的截圖有部分的重疊,如果重疊部分中包含了表情符號(hào),那么這個(gè)表情符號(hào)已經(jīng)是被定位過的了,如果這時(shí)候?qū)z測(cè)到的結(jié)果輸出,那么就會(huì)產(chǎn)生重復(fù)。產(chǎn)生這個(gè)問題的原因是,QQ顯 示聊天記錄的區(qū)域是固定的,當(dāng)有新的聊天記錄到來時(shí),舊的聊天記錄就會(huì)被頂上去,如果一個(gè)表情符號(hào)出現(xiàn)在了一副截圖的最底層,即用戶剛收到這個(gè)表情符號(hào),那么,這個(gè)表情符號(hào)就會(huì)在后續(xù)的幾張截圖里出現(xiàn),直到有足夠多的消息將此表情符號(hào)頂出聊天記錄的顯示區(qū)域。由于以上的情況,本模塊不能設(shè)置成將所有檢測(cè)到的表情符號(hào),全部存放為結(jié)果進(jìn)行輸出,為了解決重復(fù)定位這個(gè)問題,進(jìn)行了這樣的設(shè)計(jì)只對(duì)識(shí)別出的表情符號(hào)中坐標(biāo)x、y、都是最大的表情符號(hào)的位置進(jìn)行輸出。 因此Hough檢測(cè)模塊的功能是,對(duì)高斯平滑處理后的圖像進(jìn)行Hough變換,檢測(cè)出圓形的表情符號(hào)所在的位置;只輸出識(shí)別出的表情符號(hào)中坐標(biāo)x、y都是最大的表情符號(hào)的位置;其中X軸、y軸以對(duì)話欄的左上角為零點(diǎn)。為了減少計(jì)算量,優(yōu)選地,Hough檢測(cè)模塊的Hough變換從對(duì)話欄的右下角開始,按照從右至左,從下至上的順序計(jì)算,當(dāng)檢測(cè)到第一個(gè)圓時(shí),輸出圓心位置,并停止檢測(cè)。在表情符號(hào)定位模塊中可以獲取表情符號(hào)的位置,從而可以將表情符號(hào)單獨(dú)分離出來。但是到這一步系統(tǒng)僅僅只是知道聊天窗口出現(xiàn)了表情符號(hào)而已,它并不知道這個(gè)表情符號(hào)所代表的意義,所以還不能做出對(duì)應(yīng)的一個(gè)響應(yīng),要實(shí)現(xiàn)對(duì)不同表情符號(hào)進(jìn)行正確的響應(yīng),還需要識(shí)別出分離出的表情符號(hào)所代表的含義,這一過程就是表情符號(hào)識(shí)別模塊所能夠?qū)崿F(xiàn)的功能。 表情符號(hào)識(shí)別模塊表情符號(hào)識(shí)別模塊主要的思路是將定位模塊所獲取的表情符號(hào)圖像作為模板,將包含所有默認(rèn)表情符號(hào)的圖像作為全局圖像,然后進(jìn)行模板匹配,最后找出表情符號(hào)在全局圖像中的位置,由于在全局圖像中包含了所有表情符號(hào)并且每個(gè)表情符號(hào)都有自己固定的位置,所以根據(jù)位置就可以確定表情符號(hào)所代表的意義了,此模塊的基本流程如圖10所
/Jn o因此表情符號(hào)識(shí)別模塊包括提取模塊、匹配模塊和識(shí)別模塊;其中,提取模塊,用于根據(jù)表情符號(hào)定位模塊輸出的位置,從切割模塊獲得的所述對(duì)話欄的圖像中獲得表情符號(hào)圖像,發(fā)送給匹配模塊;匹配模塊,用于將所接收的表情符號(hào)圖像作為模板,將預(yù)先存儲(chǔ)的包含所有默認(rèn)表情符號(hào)的圖像作為全局圖像,然后進(jìn)行模板匹配,最后找出表情符號(hào)圖像在全局圖像中的位置;識(shí)別模塊,用于根據(jù)已知的全局圖像中每個(gè)默認(rèn)表情符號(hào)的位置范圍和表情含義,判斷所述匹配模塊找出的表情符號(hào)圖像的位置對(duì)應(yīng)哪個(gè)表情含義,將表情含義發(fā)送給響應(yīng)模塊。
仍以QQ為例,圖11是QQ所有的默認(rèn)表情符號(hào)截圖。從圖中可以看出一共有8行14列表情符號(hào),共計(jì)105個(gè),每個(gè)表情符號(hào)都占有一個(gè)固定的位置,并且都有一個(gè)固定的外接矩形,經(jīng)過測(cè)量得到表情符號(hào)矩形所占的區(qū)域大小為33X33像素,這里就可以將圖11劃分成112個(gè)小矩形區(qū)域,每個(gè)區(qū)域代表一個(gè)表情符號(hào),要想識(shí)別表情符號(hào)只需判斷模板匹配中返回的表情符號(hào)的坐標(biāo)落在哪個(gè)區(qū)域即可,例如微笑表情符號(hào)的區(qū)域?yàn)?<x<33,0<y<33。撇嘴表情符號(hào)的區(qū)域?yàn)?3 < X < 66,0 < y < 33。驚訝表情符號(hào)的區(qū)域?yàn)? < X < 33,33 < y < 66。難過表情符號(hào)的區(qū)域?yàn)?3 < X < 66,33 < y < 66。匹配結(jié)果如圖12所示,為了方便觀察識(shí)別結(jié)果,這里將待識(shí)別表情符號(hào)的圖像和所有默認(rèn)表情符號(hào)的圖像以及識(shí)別結(jié)果的輸出一起顯示了出來,并且用線條標(biāo)識(shí)了模板匹·配的結(jié)果,可見利用該方法可以成功的進(jìn)行模板匹配并且利用位置識(shí)別出表情符號(hào)的含義。 響應(yīng)模塊響應(yīng)模塊比較理想的響應(yīng)方式是具有準(zhǔn)確性和一定的趣味性,也就是說該模塊應(yīng)該能夠準(zhǔn)確的做出與表情符號(hào)所對(duì)應(yīng)的響應(yīng),讓用戶很容易就能理解到響應(yīng)的含義,并且要求一定的趣味性,這樣可以提高用戶體驗(yàn)。該響應(yīng)模塊在論文研究初期的計(jì)劃是尋找一種特制的外設(shè),該外設(shè)應(yīng)該具有以下特性I)可以模仿人臉做出喜怒哀樂等各種表情。2)可以用某種方式連接到用戶的主機(jī)上,與用戶主機(jī)進(jìn)行通信。3)能夠通過編程來控制該外設(shè)做出不同的表情。傳輸方式可以根據(jù)實(shí)際需要來選擇,傳輸?shù)臄?shù)據(jù)的內(nèi)容應(yīng)該做如下設(shè)計(jì),在識(shí)別模塊已經(jīng)將105個(gè)表情符號(hào)進(jìn)行了編號(hào),識(shí)別的結(jié)果就是表情符號(hào)的編號(hào),所以可以將表情機(jī)器人的狀態(tài)也進(jìn)行編號(hào),這個(gè)編號(hào)應(yīng)該和表情符號(hào)的編號(hào)一致。這樣只需要將編號(hào)發(fā)送給響應(yīng)模塊,就可以做出對(duì)應(yīng)的表情響應(yīng)了,所以傳送的數(shù)據(jù)內(nèi)容可以設(shè)計(jì)成I到105之間的整數(shù),當(dāng)響應(yīng)模塊收到編號(hào),就可以改變到對(duì)應(yīng)的狀態(tài),那么該狀態(tài)正好就是表情符號(hào)對(duì)應(yīng)的狀態(tài)。綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于即時(shí)通訊工具的表情機(jī)器人,其特征在于,包括聊天窗口監(jiān)測(cè)模塊、表情符號(hào)定位模塊、表情符號(hào)識(shí)別模塊和響應(yīng)模塊; 所述聊天窗口監(jiān)測(cè)模塊,用于在確定當(dāng)前焦點(diǎn)窗口是即時(shí)通訊工具的聊天窗口后,對(duì)所述聊天窗口進(jìn)行監(jiān)測(cè),定時(shí)或當(dāng)用戶有新的聊天消息顯示出來時(shí),將聊天窗口的圖像截取下來,并保存為圖片; 所述表情符號(hào)定位模塊,用于分析聊天窗口監(jiān)測(cè)模塊所截取下來的圖片,尋找其中的表情符號(hào),找到表情符號(hào)之后,將表情符號(hào)的位置發(fā)送給所述表情符號(hào)識(shí)別模塊; 所述表情符號(hào)識(shí)別模塊,用于當(dāng)接收到表情符號(hào)定位模塊發(fā)過來的表情符號(hào)的位置后,將該位置的表情符號(hào)與已知表情符號(hào)庫中的表情符號(hào)進(jìn)行對(duì)比,從而確定該表情符號(hào)所代表的意義,然后將結(jié)果發(fā)送給響應(yīng)模塊; 所述響應(yīng)模塊,用于在接收到表情符號(hào)識(shí)別模塊發(fā)送過來的結(jié)果后,通過設(shè)定的表現(xiàn) 方法進(jìn)行響應(yīng)。
2.如權(quán)利要求I所述的表情機(jī)器人,其特征在于,所述響應(yīng)模塊通過聲音、圖像和/或動(dòng)作進(jìn)行響應(yīng)。
3.如權(quán)利要求I所述的表情機(jī)器人,其特征在于,所述表情符號(hào)定位模塊包括切割模塊、灰度化模塊、平滑模塊和哈夫Hough檢測(cè)模塊 切割模塊,用于根據(jù)對(duì)話欄在聊天窗口中的位置,從聊天窗口的圖像中將對(duì)話欄的圖像切割出來,將切割出來的圖像發(fā)送給灰度化模塊; 灰度化模塊,用于將所接收的圖像進(jìn)行灰度化出來,得到灰度圖,發(fā)送給平滑模塊; 平滑模塊,用于對(duì)接收到的灰度圖進(jìn)行高斯平滑處理; Hough檢測(cè)模塊,用于對(duì)高斯平滑處理后的圖像進(jìn)行Hough變換,檢測(cè)出圓形的表情符號(hào)所在的位置;只輸出識(shí)別出的表情符號(hào)中坐標(biāo)x、y都是最大的表情符號(hào)的位置;其中X軸、y軸以對(duì)話欄的左上角為零點(diǎn)。
4.如權(quán)利要求3所述的表情機(jī)器人,其特征在于,所述Hough檢測(cè)模塊的Hough變換從對(duì)話欄的右下角開始,按照從右至左,從下至上的順序計(jì)算,當(dāng)檢測(cè)到第一個(gè)圓時(shí),輸出圓心位置,并停止檢測(cè)。
5.如權(quán)利要求3或4所述的表情機(jī)器人,其特征在于,所述表情符號(hào)識(shí)別模塊包括提取模塊、匹配模塊和識(shí)別模塊; 所述提取模塊,用于根據(jù)表情符號(hào)定位模塊輸出的位置,從切割模塊獲得的所述對(duì)話欄的圖像中獲得表情符號(hào)圖像,發(fā)送給匹配模塊; 所述匹配模塊,用于將所接收的表情符號(hào)圖像作為模板,將預(yù)先存儲(chǔ)的包含所有默認(rèn)表情符號(hào)的圖像作為全局圖像,然后進(jìn)行模板匹配,最后找出表情符號(hào)圖像在全局圖像中的位置; 所述識(shí)別模塊,用于根據(jù)已知的全局圖像中每個(gè)默認(rèn)表情符號(hào)的位置范圍和表情含義,判斷所述匹配模塊找出的表情符號(hào)圖像的位置對(duì)應(yīng)哪個(gè)表情含義,將表情含義發(fā)送給響應(yīng)模塊。
全文摘要
本發(fā)明公開了一種應(yīng)用于即時(shí)通訊工具的表情機(jī)器人,它可以實(shí)時(shí)地識(shí)別用戶所使用的表情符號(hào),并且做出與該表情符號(hào)所代表含義一樣的響應(yīng)。而且表情識(shí)別方法避免了復(fù)雜程度高、實(shí)時(shí)性不佳、即時(shí)通訊工具升級(jí)后需要重新破譯密鑰的缺陷。該系統(tǒng)中,聊天窗口監(jiān)測(cè)模塊在即時(shí)通訊工具有新的聊天消息顯示出來時(shí)或定時(shí)將聊天窗口的圖像截取為圖片保存;表情符號(hào)定位模塊在截取下來的圖片中尋找表情符號(hào),將表情符號(hào)的位置發(fā)送給表情符號(hào)識(shí)別模塊;表情符號(hào)識(shí)別模塊將表情符號(hào)的位置與已知表情符號(hào)庫中的表情符號(hào)進(jìn)行對(duì)比,確定表情符號(hào)的意義,并發(fā)送給響應(yīng)模塊;響應(yīng)模塊在接收到表情符號(hào)識(shí)別模塊發(fā)送過來的結(jié)果后,通過設(shè)定的表現(xiàn)方法進(jìn)行響應(yīng)。
文檔編號(hào)G06K9/64GK102750555SQ20121022449
公開日2012年10月24日 申請(qǐng)日期2012年6月28日 優(yōu)先權(quán)日2012年6月28日
發(fā)明者張純純, 王崇文 申請(qǐng)人:北京理工大學(xué)