本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/LykXY8IGWRdnWeJdfMKGbQ"> 硬码农二毛哥微信公众号</a></span>
在Vitis AI library中的模型在自定义单板使用中,介绍了如何进行模型库编译,下一步要将模型加入到AI应用中进行编译,生成可执行文件。
<strong>编译DNNDK AI应用</strong>
DNNDK API与VART API
DNNDK API:自定义神经网络时使用。
VART(Vitis-AI RunTime) API :使用Xilinx Model Zoo中的模型时使用。
<li>安装交叉编译环境</li>
进入https://github.com/Xilinx/Vitis-AI/tree/v1.2/mpsoc,下载sdk-2020.1.0.0sh。
<pre>$mkdir petalinux_sdk
$cd petalinux_sdk
$./sdk-2020.1.0.0.sh</pre>
创建环境变量
<pre>$source ~/petalinux_sdk/environment-setup-aarch64-xilinx-linux</pre>
下载 vitis-ai_v1.2_dnndk.tar.gz ,并安装到~/petalinux_sdk/sysroots/aarch64-xilinx-linux目录,用于交叉编译
<pre>$tar -xzvf vitis-ai_v1.2_dnndk.tar.gz
$cd vitis-ai_v1.2_dnndk
$./install.sh ~/petalinux_sdk/sysroots/aarch64-xilinx-linux</pre>
将vitis_ai_dnndk_sample拷贝到工作目录Tool_Example
<pre>$cp -r ../mpsoc/vitis_ai_dnndk_sample ./</pre>
下载 vitis-ai_v1.2_dnndk_sample_img.tar.gz,并解压
<pre>$tar -xzvf vitis-ai_v1.2_dnndk_sample_img.tar.gz</pre>
FACE_DETECTION
将编译后的dpu_*.elf拷贝到face_detection
<pre>$cd ~/Vitis-AI/Tool_Example/vitis_ai_dnndk_samples/face_detection
$mkdir model_for_fzu3</pre>
修改face_detection应用下的main.cc文件
<pre>void faceDetection(DPUKernel *kernel) {
mutex mtxQueueInput; // mutex of input queue
mutex mtxQueueShow; // mutex of display queue
queue<pairImage> queueInput; // input queue
priority_queue<pairImage, vector<pairImage>, PairComp> queueShow; // display queue
VideoCapture camera(0);
if (!camera.isOpened()) {
cerr << "Open camera error!" << endl;
exit(-1);
}
camera.set(CV_CAP_PROP_FRAME_WIDTH,640);
camera.set(CV_CAP_PROP_FRAME_HEIGHT,480);</pre>
修改build.sh
<pre>elif [ "$TestBoard" = "fzu3" ] || [ "$TestBoard" = "fzu3" ]; then
if [ -e ./model_for_fzu3 ]; then
echo "copy fzu3 model file..."
cp -r model_for_fzu3 ./model
else
echo "The folder named 'Model_for_fzu3' does not exist!"
exit 1
fi</pre>
交叉编译,生成face_detection
<pre>$./build.sh fzu3</pre>
<strong>单板上执行AI应用</strong>
将face_detection拷贝到sd卡
设置DISPLAY环境变量
<pre>$exprot DISPLAY=:0.0
$xrandr --output DP-1 --mode 640x480</pre>
执行人脸检测应用
<pre>$./face_detection</pre>