我們參加了本次大學生創新創業服務外包大賽,在專案中大量使用到了合合資訊所提供的api進行相關功能實現,所以在這裡寫一篇部落格分享一下我們在專案的實際推進中關於TextIn.com API使用心得
我們的產品是一款面向公司管理的REP微信小程式,由於需要覆蓋大部分的企業辦公需求,我們使用到了大量的API,進行功能實現,這裡列舉四個使用的比較多的API功能進行講解和展示
一、通用文字識別
首先是最常用的通用文字識別功能,即識別圖片上的的文字並進行輸出,實現程式碼如下:
import requests import json def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() class CommonOcr(object): def __init__(self, img_path): self._app_id = '******************************' self._secret_code = '********************************' self._img_path = img_path def recognize(self): url = 'https://api.textin.com/ai/service/v2/recognize' head = {} texts = [] try: image = get_file_content(self._img_path) head['x-ti-app-id'] = self._app_id head['x-ti-secret-code'] = self._secret_code response = requests.post(url, data=image, headers=head) results = json.loads(response.text) for line in results['result']['lines']: texts.append(line['text']) return texts except Exception as e: return str(e) if __name__ == "__main__": response = CommonOcr(r'img.png') print(response.recognize())
實現效果如下:
二、車牌號識別
在公司管理中,公司的汽車管理是企業業務的常見組成部分,所以我們在小程式中加入公車管理的功能,其中汽車的登記任務就是透過車牌識別的api進行實現的,實現程式碼如下:
import requests import json def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() class CommonOcr(object): def __init__(self, img_path): # 請登入後前往 “工作臺-賬號設定-開發者資訊” 檢視 x-ti-app-id # 示例程式碼中 x-ti-app-id 非真實資料 self._app_id = '****************************' # 請登入後前往 “工作臺-賬號設定-開發者資訊” 檢視 x-ti-secret-code # 示例程式碼中 x-ti-secret-code 非真實資料 self._secret_code = '*******************************' self._img_path = img_path def recognize(self): # 車牌號識別 url = 'https://api.textin.com/robot/v1.0/api/plate_number' head = {} try: image = get_file_content(self._img_path) head['x-ti-app-id'] = self._app_id head['x-ti-secret-code'] = self._secret_code result = requests.post(url, data=image, headers=head) return result.text except Exception as e: return e if __name__ == "__main__": response = CommonOcr(r'img_1.png') print(response.recognize())
實現效果如下:
三、票據識別
企業業務流程中,票據識別是一個很重要的事務,票據識別的效率很大程度上會影響到整體報銷流程的效率,所以一個精確高效的票據識別功能是不可或缺的。我們的實現程式碼如下:
import requests import json def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() class CommonOcr(object): def __init__(self, img_path): self._app_id = '**********************************' self._secret_code = '***********************************' self._img_path = img_path def recognize(self): url = 'https://api.textin.com/robot/v1.0/api/bills_crop' head = {} result_formatted = [] try: image = get_file_content(self._img_path) head['x-ti-app-id'] = self._app_id head['x-ti-secret-code'] = self._secret_code response = requests.post(url, data=image, headers=head) results = json.loads(response.text) if "result" in results and "object_list" in results["result"]: for item in results["result"]["object_list"]: if "item_list" in item: for field in item["item_list"]: result_formatted.append(field["key"] + ": " + field["value"]) result_formatted.append("") # Adds an empty line return "\n".join(result_formatted) except Exception as e: return str(e) if __name__ == "__main__": response = CommonOcr(r'img_2.png') print(response.recognize())
實現效果如下:
四、名片識別
名片是員工管理的重要依據,我們的小程式也透過名片識別實現了公司員工的登記和管理,名片識別程式碼如下:
import requests import json def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() class CommonOcr(object): def __init__(self, img_path): # 請登入後前往 “工作臺-賬號設定-開發者資訊” 檢視 x-ti-app-id # 示例程式碼中 x-ti-app-id 非真實資料 self._app_id = '***************************' # 請登入後前往 “工作臺-賬號設定-開發者資訊” 檢視 x-ti-secret-code # 示例程式碼中 x-ti-secret-code 非真實資料 self._secret_code = '***************************' self._img_path = img_path def recognize(self): # 名片識別 url = 'https://api.textin.com/robot/v1.0/api/business_card' head = {} try: image = get_file_content(self._img_path) head['x-ti-app-id'] = self._app_id head['x-ti-secret-code'] = self._secret_code result = requests.post(url, data=image, headers=head) return result.text except Exception as e: return e if __name__ == "__main__": response = CommonOcr(r'img_3.png') print(response.recognize())
實現效果如下:
除上面的api外,合合資訊還有很多豐富的面向辦公需求的api埠,並且有免費額度,推薦大家進行使用。