999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源PaddleOCR技術(shù)在企業(yè)營(yíng)業(yè)執(zhí)照識(shí)別上的改進(jìn)與實(shí)踐

2021-11-04 11:01:06仇建民
現(xiàn)代信息科技 2021年9期

DOI:10.19850/j.cnki.2096-4706.2021.09.018

摘? 要:文章設(shè)計(jì)一種用于識(shí)別企業(yè)營(yíng)業(yè)執(zhí)照?qǐng)D像的算法,其可自動(dòng)提取統(tǒng)一社會(huì)信用代碼、公司名稱等關(guān)鍵字段信息。以開源PaddleOCR框架為基礎(chǔ),通過(guò)圖像方向自動(dòng)調(diào)整、文本輸出結(jié)構(gòu)化、局部二次識(shí)別等一系列改進(jìn)措施,解決了多種圖片質(zhì)量不佳情況下僅通過(guò)PaddleOCR無(wú)法準(zhǔn)確識(shí)別信息的問(wèn)題,整體識(shí)別準(zhǔn)確率提升至90%以上,且實(shí)現(xiàn)秒級(jí)檢測(cè)。該成果已投入實(shí)際使用,輔助前臺(tái)操作人員快速識(shí)別所填寫的營(yíng)業(yè)執(zhí)照信息是否準(zhǔn)確,提高人工錄入效率。

關(guān)鍵詞:PaddleOCR;圖像識(shí)別;企業(yè)營(yíng)業(yè)執(zhí)照;AI

中圖分類號(hào):TP391.4;TP18? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2021)09-0065-06

Improvement and Practice of Open Source PaddleOCR Technology in?Enterprise Business License Recognition

QIU Jianmin

(China Telecom Corporation Limited Jiangsu Branch,Nanjing? 210037,China)

Abstract:In this paper,an algorithm for recognizing the enterprise business license image is designed,which can extract automatically the unified social credit code,company name and other key field information. Based on the open source PaddleOCR framework,through a series of improvement measures,such as image orientation automatic adjustment,structured text output,local secondary recognition,the problem that information cannot be accurately recognized only by PaddleOCR under the situation of several kinds of poor image quality is solved,the overall recognition accuracy is improved to more than 90%,and second level detection is realized. This achievement has been put into the actual use to assist the front desk operators to quickly identify whether the business license information filled in is accurate or not,and improve the efficiency of manual entry.

Keywords:PaddleOCR;image recognition;enterprise business license;AI

0? 引? 言

本文在開源PaddleOCR框架[1]的基礎(chǔ)上,設(shè)計(jì)AI算法自動(dòng)提取統(tǒng)一社會(huì)信用代碼、公司名稱等關(guān)鍵字段信息。通過(guò)一系列改進(jìn)措施,在PaddleOCR無(wú)法準(zhǔn)確識(shí)別多種質(zhì)量不佳圖片的情況下依然能夠準(zhǔn)確識(shí)別圖中關(guān)鍵信息,并實(shí)現(xiàn)秒級(jí)檢測(cè),該成果已投入實(shí)際生產(chǎn)系統(tǒng)使用。適合從事圖像識(shí)別相關(guān)工作的人員共同研究討論。

1? 背景

早前,營(yíng)業(yè)員在營(yíng)業(yè)系統(tǒng)中登記企業(yè)營(yíng)業(yè)執(zhí)照信息時(shí)均通過(guò)人工查看之后手動(dòng)錄入系統(tǒng),為提升人工錄入效率,需設(shè)計(jì)AI算法,自動(dòng)提取營(yíng)業(yè)執(zhí)照中統(tǒng)一社會(huì)信用代碼、公司名稱等關(guān)鍵字段信息[2]。PaddleOCR是由百度公司開源的超輕量OCR(Optical Character Recognition)系統(tǒng),主要由DB文本檢測(cè)[3]、檢測(cè)框矯正[4]和CRNN文本識(shí)別[5]三部分組成。通過(guò)PaddleOCR能夠?qū)崿F(xiàn)文本的檢測(cè)與識(shí)別,正常識(shí)別的圖片如圖1所示。

但是當(dāng)圖片存在低亮度、角度歪曲、光照不均、陰影遮擋、水印覆蓋、印章覆蓋等情況時(shí),PaddleOCR均未能完整準(zhǔn)確地識(shí)別出關(guān)鍵信息。未能正常識(shí)別的圖片如圖2所示。本文需重點(diǎn)解決以上復(fù)雜情況下的文字識(shí)別問(wèn)題。

2? 目標(biāo)

在PaddleOCR源碼基礎(chǔ)上,通過(guò)補(bǔ)充自定義算法,包括增加圖像方向自動(dòng)調(diào)整、文本輸出結(jié)構(gòu)化、局部二次識(shí)別等技術(shù),解決以上諸多復(fù)雜情況下文字識(shí)別不準(zhǔn)確的問(wèn)題,將營(yíng)業(yè)執(zhí)照關(guān)鍵信息的識(shí)別準(zhǔn)確率由70%提升至90%。

3? 改進(jìn)舉措

3.1? 自動(dòng)調(diào)整圖像方向

因?yàn)樵紶I(yíng)業(yè)執(zhí)照?qǐng)D像可能方向不正、角度不正,需統(tǒng)一將圖像方向調(diào)整為豎直方向,增強(qiáng)文字識(shí)別的連貫性。做法為:由于營(yíng)業(yè)執(zhí)照中“營(yíng)業(yè)執(zhí)照”這四個(gè)字的位置相對(duì)清晰,PaddleOCR基本均能識(shí)別出來(lái),在識(shí)別出“營(yíng)業(yè)執(zhí)照”四個(gè)字的基礎(chǔ)之上,增加一段代碼,定義為函數(shù)rectifyOCRAngle,用來(lái)判斷營(yíng)業(yè)執(zhí)照的字在圖片中的哪個(gè)位置:在整體上1/3就認(rèn)為是上面,在下1/3就認(rèn)為是下面;在左1/3就認(rèn)為是左邊;在右1/3就認(rèn)為是右邊。進(jìn)而根據(jù)判斷結(jié)果進(jìn)行旋轉(zhuǎn),將圖像旋轉(zhuǎn)至豎直方向。rectifyOCRAngle函數(shù)代碼為:

defrectifyOCRAngle(img, coordinates, ocrtexts):

iangle = 0

idx = -1

sp = img.shape

width = sp[1]

height = sp[0]

foriin range(len(BUSINESSLINCENSE_RULES)):

for j in range(len(ocrtexts)):

idx_find = str(ocrtexts[j][0]).find(BUSINESSLINCENSE_RULES[i])

ifidx_find> -1:

idx = j

break

ifidx> -1:

break

ifidx == -1:

returnidx, img, coordinates, ocrtexts

x_center = coordinates[idx][0][0] + (coordinates[idx][1][0] - coordinates[idx][0][0])/2.0

y_center = coordinates[idx][0][1] + (coordinates[idx][3][1] - coordinates[idx][0][1])/2.0

transposedImage = cv2.transpose(img)

widthper = width / x_center

heightper = height / y_center

ifwidthper<2.5andwidthper>1.5:# 正面或下面

ifheightper>2:

angle = 0

else:

img = cv2.flip(img, -1);

for j in range(len(coordinates)):

coordinates[j][0][0] = width - 1 - coordinates [j][0][0]

coordinates[j][0][1] = height - 1 - coordinates [j][0][1]

coordinates[j][1][0] = width - 1 - coordinates [j][1][0]

coordinates[j][1][1] = height - 1 - coordinates [j][1][1]

coordinates[j][2][0] = width - 1 - coordinates [j][2][0]

coordinates[j][2][1] = height - 1 - coordinates [j][2][1]

coordinates[j][3][0] = width - 1 - coordinates [j][3][0]

coordinates[j][3][1] = height - 1 - coordinates [j][3][1]

pt1 = coordinates[j][0]

coordinates[j][0] = coordinates[j][2]

coordinates[j][2] = pt1

pt2 = coordinates[j][1]

coordinates[j][1] = coordinates[j][3]

coordinates[j][3] = pt2

print(coordinates)

angle = 180

else: # 左邊或右面

略(可類比前一段代碼:正面或下面)

returnidx, img, coordinates, ocrtexts

調(diào)節(jié)前后的對(duì)比圖示例如圖3所示。

3.2? 文本輸出結(jié)構(gòu)化

在真實(shí)的營(yíng)業(yè)執(zhí)照?qǐng)D片中,統(tǒng)一社會(huì)信用處存在“(1/1)”“副本編碼”等額外的非相關(guān)文本,根據(jù)業(yè)務(wù)統(tǒng)一規(guī)范,利用正則表達(dá)式定義函數(shù)UnionCodeSechema,用于提取出18位標(biāo)準(zhǔn)代碼,刪除括號(hào)等多余的文本,確保統(tǒng)一社會(huì)信用代碼準(zhǔn)確。UnionCodeSechema函數(shù)代碼為 :

defUnionCodeSechema(sUnionCode,coordinates,iUnionCode):

i_tmp = sUnionCode.find('(')

ifi_tmp> -1:

sUnionCode = sUnionCode[0:i_tmp]

foriin range(len(sUnionCode)):

if (sUnionCode[i] >= '0'andsUnionCode[i] <= '9') or (sUnionCode[i] >= 'A'andsUnionCode[i] <= 'Z'):

continue

else:

sUnionCode = sUnionCode[0:len(sUnionCode)]

break

iflen(sUnionCode) >= 18:

sUnionCode = sUnionCode[0:18]

else:

pass

returnsUnionCode

統(tǒng)一社會(huì)信用代碼存在多余文字的示例如圖4所示。

圖4? 統(tǒng)一社會(huì)信用代碼存在多余文字的示例

3.3? 局部二次識(shí)別

通過(guò)分析原始PaddleOCR識(shí)別不準(zhǔn)確的案例,發(fā)現(xiàn)90%識(shí)別不準(zhǔn)確都是由于識(shí)別出來(lái)的文字不完整,當(dāng)原始圖片出現(xiàn)亮度低、角度歪曲、光照不均、陰影遮擋、水印覆蓋、印章覆蓋等情況,往往會(huì)導(dǎo)致直接識(shí)別的結(jié)果有缺失。為此,我們提出局部二次識(shí)別的解決辦法。針對(duì)各種識(shí)別結(jié)果局部缺失的情況,將識(shí)別不準(zhǔn)確的局部圖片單獨(dú)提取出來(lái)進(jìn)行二次單獨(dú)識(shí)別,減少了整張圖片的背景干擾,再將局部二次識(shí)別出來(lái)的結(jié)果拼接至首次PaddleOCR識(shí)別結(jié)果中,從而極大地提升識(shí)別的準(zhǔn)確率。需要局部二次識(shí)別的場(chǎng)景為:

(1)針對(duì)統(tǒng)一社會(huì)信用代碼:

1)前面的字識(shí)別出了,后面的編碼未識(shí)別出或者識(shí)別不完整:根據(jù)字的定位,提取后面區(qū)域的圖像進(jìn)行二次識(shí)別,識(shí)別出編碼。

2)后面的編碼識(shí)別出了,前面的字未識(shí)別出或者識(shí)別不完整:根據(jù)編碼的定位,提取前面區(qū)域的圖像進(jìn)行二次識(shí)別,識(shí)別出字。

3)前面的字未識(shí)別出或者識(shí)別不完整,后面的編碼也未識(shí)別出或者識(shí)別不完整:根據(jù)營(yíng)業(yè)執(zhí)照和公司名稱的位置,估算統(tǒng)一社會(huì)信用代碼的位置和范圍,提取出該段區(qū)域進(jìn)行二次識(shí)別,識(shí)別出編碼。

(2)針對(duì)公司名稱:

1)前面的字識(shí)別出了,后面的公司名稱未識(shí)別出或者識(shí)別不完整:根據(jù)字的定位,提取后面區(qū)域的圖像進(jìn)行二次識(shí)別,識(shí)別出公司名稱。

2)后面的公司名稱識(shí)別出了,前面的字未識(shí)別出或者識(shí)別不完整:根據(jù)公司名稱的定位,提取前面區(qū)域的圖像進(jìn)行二次識(shí)別,識(shí)別出字。

3)前面的字未識(shí)別出或者識(shí)別不完整,后面的公司名稱也未識(shí)別出或者識(shí)別不完整:根據(jù)營(yíng)業(yè)執(zhí)照和統(tǒng)一社會(huì)信用代碼的位置,估算公司名稱的位置和范圍,提取出該段區(qū)域進(jìn)行二次識(shí)別,識(shí)別出公司名稱。

其中,營(yíng)業(yè)執(zhí)照識(shí)別出的文字滿足以下條件之一即可定位:['營(yíng)業(yè)執(zhí)照', '營(yíng)業(yè)執(zhí)', '業(yè)執(zhí)照', '執(zhí)照', '營(yíng)業(yè)']);統(tǒng)一社會(huì)信用代碼識(shí)別出的文字滿足以下條件之一即可定位:['統(tǒng)一社會(huì)信用代碼', '統(tǒng)一社會(huì)信用代', '統(tǒng)一社會(huì)信用', '統(tǒng)一社會(huì)信', '統(tǒng)一社會(huì)', '統(tǒng)一社', '社會(huì)信用代碼', '信用代碼', '代碼'];公司名稱識(shí)別出的文字滿足以下條件之一即可定位:['名稱',名,稱]。

自定義函數(shù)secOCRRecog,用于二次識(shí)別,自定義函數(shù)TextSechema,用于判斷需要二次識(shí)別的情況并調(diào)用secOCRRecog,代碼分別為 :

defsecOCRRecog(self, img, type):

cv2.imwrite(TEMPPIC_PATH, img)

if type == '3':

ocrresult = self.ocrModel.ocr(TEMPPIC_PATH, det=True, rec=True, cls=True)

print('3-----' + str(ocrresult))

b_find = False

sp = img.shape

width = sp[1]

height = sp[0]

foriin range(len(ocrresult)):

if (len(ocrresult[i][1][0]) >0):

s_search = re.search(r'\d{8}', ocrresult[i][1][0])

ifs_search:

b_find = True

x = int(ocrresult[i][0][0][0])

y_dis = int(ocrresult[i][0][3][1] - ocrresult[i][0][0][1])

y = int(ocrresult[i][0][0][1])

if x > (width // 2):

cropped = img[y:(y + y_dis), int(width / 2):(width - 20), :]

else:

cropped = img[y:(y + y_dis), 20: int(width / 2), :]

ret_tmp = self.secOCRRecog(cropped, '1')

returnret_tmp

ifb_find == False:

cropped = img[(height // 4):(height - height // 4), 30: (width - 30), :]

ret_tmp = self.secOCRRecog(cropped, '1')

print(ret_tmp)

ifret_tmp:

returnret_tmp

else:

cropped = img[(height // 6):(height - height // 2), 30: (width - 30), :]

ret_tmp = self.secOCRRecog(cropped, '1')

ifret_tmp:

returnret_tmp

else:

cropped = img[(height // 2):(height - height // 6), 30: (width - 30), :]

ret_tmp = self.secOCRRecog(cropped, '1')

returnret_tmp

elif type == '1'or type == '2':

略(類比前一段代碼iftype == '3',繼續(xù)完成type == '1'和type == '2')

defTextSechema(self, img, coordinates, ocrTexts, icode):

ls_ret = []

b_find = False

sp = img.shape

width = sp[1]

height = sp[0]

foriin range(len(UNIONCODE_RULES)):

for j in range(len(ocrTexts)):

ifocrTexts[j][0].find(UNIONCODE_RULES[i]) > -1:

iflen(ocrTexts[j][0]) >10:

s_search = re.search("\d", ocrTexts[j][0])

i_tag = s_search.start()

ls_ret.append(['統(tǒng)一社會(huì)信用代碼', UnionCodeSechema (ocrTexts[j][0][i_tag:], coordinates, j)])

b_find = True

else:

ifb_find == False:

print(coordinates[j])

x = int(coordinates[j][0][0])

y = int(coordinates[j][0][1])

y_dis = int(coordinates[j][3][1] - coordinates[j][0][1])

cropped = img[y:(y + y_dis), x:(x + int(width / 2) + 20), :]

ret_tmp = self.secOCRRecog(cropped, '1')

ifret_tmp:

ls_ret.append(['統(tǒng)一社會(huì)信用代碼', UnionCodeSechema (ret_tmp[1], coordinates, j)])

b_find = True

for j in range(len(ocrTexts)):

if (len(ocrTexts[j][0]) == 2andocrTexts[j][0] == '名稱'and (

(j + 1

ls_ret.append(['名稱', ocrTexts[j + 1][0]])

i_name = j + 1

break

eliflen(ocrTexts[j][0]) == 1andocrTexts[j][0] == '稱'andlen(ocrTexts[j + 1][0]) >2:

ls_ret.append(['名稱', ocrTexts[j + 1][0]])

i_name = j + 1

break

elif (len(ocrTexts[j][0]) >1) and (ocrTexts[j][0][0] == '稱'):

ls_ret.append(['名稱', ocrTexts[j][0][1:]])

i_name = j

break

elif (len(ocrTexts[j][0]) >2) and (ocrTexts[j][0][0] == '名') and (ocrTexts[j][0][1] == '稱'):

ls_ret.append(['名稱', ocrTexts[j][0][2:]])

i_name = j

break

elif (ocrTexts[j][0].find('名稱') > -1) and (len(ocrTexts[j][0]) >2):

ls_ret.append(['名稱', ocrTexts[j][0]])

i_name = j

break

elif (ocrTexts[j][0] == '名') and ((j + 2)

ocrTexts[j + 1][0][0] != '稱'):

ls_ret.append(['名稱', ocrTexts[j + 1][0]])

i_name = j + 1

break

elif (ocrTexts[j][0] == '名') and ((j + 1)

i_name = j

print(coordinates[j])

x = int(coordinates[j][0][0])

y = int(coordinates[j][0][1])

y_dis = int(coordinates[j][3][1] - coordinates[j][0][1])

cropped = img[y:(y + y_dis), x:(x + int(width / 2) + 150), :]

ret_tmp = self.secOCRRecog(cropped, '2')

ifret_tmp:

ls_ret.append(ret_tmp)

break

if (b_find == False) and (i_name> -1):

print('營(yíng)業(yè)執(zhí)照位置' + str(coordinates[icode]) + '\n')

print('名稱' + str(coordinates[i_name]) + '\n')

x = int(20)

y = int(coordinates[icode][3][1] + 3)

y_ = int(coordinates[i_name][0][1] - 6)

if y < y_:

cropped = img[y:y_, x: (width - 20), :]

else:

cropped = img[y_:y, x: (width - 20), :]

ret_tmp = self.secOCRRecog(cropped, '3')

ifret_tmp:

ls_ret.append(

['統(tǒng)一社會(huì)信用代碼', UnionCodeSechema (ret_tmp[1], coordinates, icode)])

returnls_ret

針對(duì)前面章節(jié)中的圖2,PaddleOCR識(shí)別結(jié)果不完整,通過(guò)增加局部二次識(shí)別,補(bǔ)充識(shí)別出完整的統(tǒng)一社會(huì)信用代碼,示例對(duì)比如圖5所示。

4? 結(jié)果及應(yīng)用情況

使用完整的代碼識(shí)別773張樣本,最終識(shí)別結(jié)果準(zhǔn)確率超過(guò)90%,分析識(shí)別失敗的案例,基本是由于文字中存在生僻字,導(dǎo)致文本識(shí)別不準(zhǔn)確。識(shí)別失敗的案例如圖6所示。

得益于PaddleOCR的輕量化模型部署,識(shí)別圖像的速度較快,新增的代碼僅僅針對(duì)需要二次識(shí)別的部分才會(huì)進(jìn)行二次識(shí)別。經(jīng)實(shí)際測(cè)驗(yàn),使用CPU機(jī)器識(shí)別單張營(yíng)業(yè)執(zhí)照,約1~3秒鐘可出結(jié)果;使用GPU機(jī)器識(shí)別單張營(yíng)業(yè)執(zhí)照,約0.5~1秒鐘可出結(jié)果。整體識(shí)別準(zhǔn)確率和效率均達(dá)預(yù)期。因此將本模型部署至實(shí)際生產(chǎn)系統(tǒng),用于營(yíng)業(yè)人員在前臺(tái)錄入營(yíng)業(yè)執(zhí)照信息時(shí)進(jìn)行自動(dòng)識(shí)別,提升了人工錄入效率。

5? 結(jié)? 論

本文在開源PaddleOCR框架基礎(chǔ)上,對(duì)代碼進(jìn)行了相應(yīng)的改進(jìn)和完善,解決了PaddleOCR無(wú)法準(zhǔn)確識(shí)別復(fù)雜場(chǎng)景下的營(yíng)業(yè)執(zhí)照的問(wèn)題,并將模型順利部署至實(shí)際生產(chǎn)系統(tǒng),幫助前臺(tái)營(yíng)業(yè)人員自動(dòng)錄入營(yíng)業(yè)執(zhí)照關(guān)鍵信息,具有較好的經(jīng)濟(jì)效益。后續(xù)可以繼續(xù)以PaddleOCR框架為基礎(chǔ),增加生僻字的fine turning,繼續(xù)提升識(shí)別準(zhǔn)確率。

參考文獻(xiàn):

[1] DU Y N,LI C X,GUO R Y,et al. PP-OCR:A Practical Ultra Lightweight OCR System [J/OL].arXiv:2009.09941 [cs.CV].(2020-09-21).https://arxiv.org/abs/2009.09941v3.

[2] 邵慧敏.營(yíng)業(yè)執(zhí)照自動(dòng)識(shí)別技術(shù)的研究 [D].烏魯木齊:新疆農(nóng)業(yè)大學(xué),2020.

[3] LIAO M H,WAN Z Y,Yao C,et al. Real-Time Scene Text Detection with Differentiable Binarization [J].Proceedings of the AAAI Conference on Artificial Intelligence,2020,34(7):11474-11481.

[4] YU D L,Li X,ZHANG C Q,et al. Towards Accurate Scene Text Recognition With Semantic Reasoning Networks[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR).Seattle:IEEE,2020.

[5] LI W,CAO L B,ZHAO D Z,et al. CRNN:Integrating classification rules into neural network[C]//The 2013 International Joint Conference on Neural Networks(IJCNN).Dallas:IEEE,2013.

作者簡(jiǎn)介:仇建民(1988.06—),男,漢族,江蘇揚(yáng)州人,中級(jí)工程師,本科,研究方向:IT系統(tǒng)建設(shè)與運(yùn)維、大數(shù)據(jù)平臺(tái)、數(shù)據(jù)倉(cāng)庫(kù)、AI開發(fā)與應(yīng)用(文本分類、圖像識(shí)別)等。

收稿日期:2021-04-06

主站蜘蛛池模板: 久久香蕉国产线看精品| 玖玖精品在线| 99成人在线观看| 亚洲专区一区二区在线观看| 国产福利小视频在线播放观看| 久久网欧美| 黑人巨大精品欧美一区二区区| 亚洲黄色成人| 日韩a级毛片| 国产SUV精品一区二区6| 国产一区二区精品福利| 日韩毛片在线视频| 欧美日韩国产在线人成app| 乱人伦中文视频在线观看免费| 久操中文在线| 中国一级特黄大片在线观看| 国产91成人| 久久99国产精品成人欧美| 国产激情影院| 国产日本欧美在线观看| 成人午夜亚洲影视在线观看| 国产大片黄在线观看| 无码综合天天久久综合网| 精品视频在线观看你懂的一区| 国产91丝袜| 国产69精品久久| 69综合网| 日本高清免费一本在线观看| 国产成人午夜福利免费无码r| av午夜福利一片免费看| 亚洲成人精品久久| 国产区91| 欧美成a人片在线观看| 欧美a在线| 亚洲综合专区| 精品久久久久成人码免费动漫| 国产精品55夜色66夜色| 美女无遮挡被啪啪到高潮免费| 久久精品日日躁夜夜躁欧美| 国产视频入口| 午夜毛片福利| 国产精品极品美女自在线看免费一区二区| 996免费视频国产在线播放| 欧美日韩中文国产va另类| 欧美自慰一级看片免费| 日本午夜网站| 黄色在线不卡| 视频在线观看一区二区| 国产成人综合亚洲欧洲色就色| 国产丝袜一区二区三区视频免下载| 最新加勒比隔壁人妻| 中文字幕资源站| 国产无遮挡猛进猛出免费软件| 亚洲欧美日韩中文字幕在线一区| 国产成人一区| 亚洲一区第一页| 欧美日韩另类在线| AV在线麻免费观看网站| 国产无人区一区二区三区| 亚洲国产午夜精华无码福利| 国产精品精品视频| 国产在线专区| 国产女人18水真多毛片18精品| 在线亚洲精品福利网址导航| 亚洲成人精品| 国产福利免费视频| 福利视频99| 日韩黄色在线| 美女黄网十八禁免费看| 2048国产精品原创综合在线| 亚洲欧美另类专区| 玩两个丰满老熟女久久网| 亚洲性视频网站| www亚洲天堂| 亚洲无线视频| 亚洲精品欧美重口| 亚洲精品日产AⅤ| 在线观看免费国产| 成人在线欧美| 欧美午夜小视频| 在线观看免费国产| 国产精品美女自慰喷水|