华为HiLens提供了一套HiLens Framework,HiLens Framework通过封装底层接口、实现常用的管理功能,让开发者可以方便的开发Skill,发展AI生态。详细指导和API介绍可参见《开发指南》。
HiLens Kit搭载了HiLens Framework,开发者在开发技能编写逻辑代码时,可以直接调用HiLens Framework的API。
下面是使用HiLens Framework获取摄像头内容并做简单处理的示例。
- 需要在开发技能时填写代码执行文件。
- 固件1.1.2及以后版本支持配置技能的Python依赖库。开发者在开发技能过程中,可根据自身需要配置技能的Python依赖库,详情请见配置技能的Python依赖库。
#!/usr/bin/python3
# skillframework 1.0.0 python demo
import hilens # 导入hilens包
import cv2 # 导入opencv
def main():
hilens.init("hello") # 技能初始化
model = hilens.Model(hilens.get_model_dir() +
"faceDetection.om") # 构造模型管理器。
disp = hilens.Display(hilens.HDMI) # 构造显示器
cap = hilens.VideoCapture() # 构造摄像头
proc = hilens.Preprocessor() # 构造预处理器
hilens.set_log_level(hilens.DEBUG) # 设定日志级别
hilens.Info("This is a skillframework python demo") # 打印日志
for i in range(10):
frame = cap.read() # 读取一帧画面
rframe = proc.resize(frame, 480, 480, 1) # 缩放
inputs = [rframe.flatten()] # 构造模型输入
outputs = model.infer(inputs) # 推理
hilens.Info("outputs len: %d" % len(outputs)) # 打印输出尺寸
for o in outputs:
hilens.Info("output shape: " + str(o.shape))
# post process is ignored
disp.show(frame) # 将图像输出到显示器
hilens.terminate() # 销毁资源
if __name__ == "__main__":
main()