我们使用SophonSDK来移植算法和模型,并在X86主机的开发环境上封装和打包算法服务。这里以LPRNet车牌识别算法服务为例进行介绍。相关文件已上传至SOPHGO的demo目录下,主要流程包括以下几步:
1 封装算法服务
我们在x86文件下的main.py中封装了算法接口和HTTP服务。
1.1 算法封装
车牌识别算法比较简单,我们可以把整个算法流程封装到main.py中,并提供算法调用接口。
class LPRNet(object): ... if __name__ == "__main__": lprnet = LPRNet()
如果算法比较复杂,涉及多个模型,我们可以把算法的相关代码放至x86文件夹下,在main.py中提供算法调用接口即可。
1.2 服务封装
我们需要在SimpleHTTPRequestHandler中的do_POST函数下定义访问地址、请求方式、返回码、返回信息、调用算法接口、返回结果等。
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): ...... def do_POST(self):#ip:port/lprnet path = str(self.path) # 获取请求的url if path == '/lprnet': content_length = int(self.headers['Content-Length']) body = self.rfile.read(content_le