赞
踩
目录
2.2.2 解压sophon-img包里的libsophon_soc__aarch64.tar.gz,将lib和include的所有内容拷贝到soc-sdk文件夹
2.2.3 解压sophon-mw包里的sophon-mw-soc__aarch64.tar.gz,将sophon-mw下lib和include的所有内容拷贝到soc-sdk文件夹。
从上面网址下载
下载完之后解压,里面包含很多内容
这篇博客主要记录下自己使用新的C++推理demo以及新的SDK库和头文件的过程,至于使用SDK大包里面的mlir进行模型转换的方法步骤在另一篇博客里面:利用tpu-mlir工具将深度学习算法模型转成算能科技平台.bmodel模型的方法步骤_mlir tpu-CSDN博客
要想编译或者运行C++ demo,那么都需要用到SDK里面的库文件或者头文件,因此首先要获取头文件或者库文件,下面的操作都是基于第一步下载的SDK大包的基础上进行的。
先简单看一下SDK引言里面的注意事项
新的SOPHONSDK不再提供官方docker,可直接在宿主机上使用deb包安装软件库包,也可以参考《LIBSOPHON使用手册》第6章构建自己的镜像。
PCIe模式下,如果已经装了BM1684 SDK 的驱动,请先卸载旧的 BM1684 SDK 的驱动,再安装sophon-driver_x.y.z_amd64.deb包,具体可参考《LIBSOPHON使用手册》第3章。
sophon-mw-sophon-ffmpeg 依赖 sophon-libsophon 包,而 sophon-mw-sophon-opencv 依赖 sophon-mw-sophon-ffmpeg,因此在安装次序上必须先安装 libsophon,然后 sophon-mw-sophon-ffmpeg,最后安装 sophon-mw-sophon-opencv。
推荐使用cmake中的find_package查找libsophon和sophon-mw的库包,并链接到自己的程序中。
部分头文件不包含于libsophon,如bm_wrapper.hpp、utils.hpp。
SoC模式下,原来/system下的软件库包,现位于/opt/sophon/下。
SoC模式下,通过开机时的systemd服务,自动加载/opt/sophon/libsophon-current/data下的ko内核模块。如用户定义的自启动服务,并且依赖BM168X,请确保在ko加载后启动。
新的TPU-MLIR和TPU-NNTC使用tpu_model替换原来的bm_model.bin,使用方法相同。
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
这个我电脑中之前就有
- which aarch64-linux-gnu-g++
- /data/chw/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
- cd Release_v2312-LTS/
- cd sophon-img_20231116_213307/
- mkdir -p soc-sdk
- tar -zxf libsophon_soc_0.5.0_aarch64.tar.gz
- cp -drf libsophon_soc_0.5.0_aarch64/opt/sophon/libsophon-0.5.0/include/ ./soc-sdk/
- cp -drf libsophon_soc_0.5.0_aarch64/opt/sophon/libsophon-0.5.0/lib/ ./soc-sdk/
- ll soc-sdk/
- cd sophon-mw_20231116_113811/
- tar -zxf sophon-mw-soc_0.7.3_aarch64.tar.gz
- cp -drf sophon-mw-soc_0.7.3_aarch64/opt/sophon/sophon-ffmpeg_0.7.3/lib ../sophon-img_20231116_213307/soc-sdk/
- cp -drf sophon-mw-soc_0.7.3_aarch64/opt/sophon/sophon-ffmpeg_0.7.3/include ../sophon-img_20231116_213307/soc-sdk/
- cp -drf sophon-mw-soc_0.7.3_aarch64/opt/sophon/sophon-opencv_0.7.3/lib/ ../sophon-img_20231116_213307/soc-sdk/
- cp -drf sophon-mw-soc_0.7.3_aarch64/opt/sophon/sophon-opencv_0.7.3/include/ ../sophon-img_20231116_213307/soc-sdk/
我使用的是SOC模式,而非PCIE模式,因此参考文档中的环境配置-SOC章节。
使用sdk大包中sophon-img下的sdcard刷机包刷机,然后/opt/sophon/下就会有libsophon、sophon-opencv和sophon-ffmpeg运行库包。只需用export PYTHONPATH=$PYTHONPATH:设置环境变量即可。
我想用内存卡对算能科技的BM1684盒子进行刷机,结果没有刷机成功,问题在于我的内存卡是用windows系统格式化的,然后格式化之后的内存卡有个多余的分区
而盒子要求这里比如只能有sdb不能有sdb1.
- a、显示sd卡状态。执行命令 lsblk 会显示sd卡会有分区,比如sdb1
- b、取消挂载。umount /dev/sdb1
- c、格式化TF卡,sudo mkfs.vfat -I /dev/sdb(合并所有分区,例如:/dev/sdb设备下 sdb1 、sdb2分区,使用-I参数可以合并格式化所有分区 )
- d、检查sd卡是否合并成功, lsblk -f 只有sdb,没有sdb1等分区,-f参数还可以看到格式是不是vfat。
C++推理demo在github上有:https://github.com/sophgo/sophon-demo/tree/release/sample/YOLOv5/cpp/yolov5_bmcv
在上面下载的SDK大包里面也有C++推理demo代码
但是这时候如果想编译,那么还缺少算能的库和头文件,在前面soc-sdk的时候已经把库和头文件全都拷贝过去了,这里把前面的库和头文件都拷贝过来,
- 2037 cp -drf /data/chw/bitedalu_20220713/Release_230701-public/sophon-img_20230810_221353/soc-sdk/include/* ./include/
- 2038 cp -drf /data/chw/bitedalu_20220713/Release_230701-public/sophon-img_20230810_221353/soc-sdk/lib/* ./lib/
然后还有一些头文件也需要拷贝过来,就是在
还有个源文件也要拷贝过来
然后,我这里创建了个demo文件夹把mainc.pp放里面,
创建了cpp文件件把yolov5.cpp和ff_decode.cpp放里面。
最后的整体目录如下
├── chw_makefile ├── CMakeLists.txt ├── cpp │ ├── ff_decode.cpp │ ├── ff_decode.o │ ├── yolov5.cpp │ └── yolov5.o ├── data │ ├── coco.names │ ├── images │ │ ├── 1111bus.jpg │ │ ├── 1.jpg │ │ ├── accident.mp4 │ │ ├── bus.jpg │ │ ├── conflict .mp4 │ │ ├── overflow.mp4 │ │ └── 南京路-东海路南电警-EQ.mp4 │ └── models │ ├── easnet_fp8_640_1.bmodel_new │ ├── easnet_fp8_640_1.bmodel_old │ └── yolov5s_1684_f32_sym.bmodel ├── demo │ └── main.cpp ├── env_demo ├── include │ ├── bm1682_profile.h │ ├── bm1684_profile.h │ ├── bm1684x_profile.h │ ├── bmblob.h │ ├── bmcnnctx.h │ ├── bmcpu_common.h │ ├── bmcpu_dev.h │ ├── bmcpu.h │ ├── bmcv_api_ext_c.h │ ├── bmcv_api_ext.h │ ├── bmcv_api.h │ ├── bmdef.h │ ├── bmfunc │ │ ├── bmdnn_func.h │ │ └── bmfunc.h │ ├── bm_ion.h │ ├── bmjpuapi.h │ ├── bmjpuapi_jpeg.h │ ├── bmlib_runtime.h │ ├── bmlog.hpp │ ├── bmnet.h │ ├── bmnn_utils.h │ ├── bmodel.hpp │ ├── bmqueue.h │ ├── bmrt_arch_info.h │ ├── bmruntime_common.h │ ├── bmruntime_cpp.h │ ├── bmruntime.h │ ├── bmruntime_interface.h │ ├── bmruntime_legacy.h │ ├── bmruntime_profile.h │ ├── bmtap2 │ │ ├── bmruntime_bmnet.h │ │ ├── bmruntime.hpp │ │ └── bmruntime_inner.h │ ├── bm_video_interface.h │ ├── bmvppapi.h │ ├── bmvpp.h │ ├── bmvpuapi_common.h │ ├── bmvpuapi_enc.h │ ├── bmvpuapi.h │ ├── bmvpu.h │ ├── bmvpu_logging.h │ ├── bmvpu_types.h │ ├── bm_wrapper.hpp │ ├── ff_decode.hpp │ ├── flatbuffers │ │ ├── base.h │ │ ├── code_generators.h │ │ ├── flatbuffers.h │ │ ├── flatc.h │ │ ├── flexbuffers.h │ │ ├── grpc.h │ │ ├── hash.h │ │ ├── idl.h │ │ ├── minireflect.h │ │ ├── reflection_generated.h │ │ ├── reflection.h │ │ ├── registry.h │ │ ├── stl_emulation.h │ │ └── util.h │ ├── jpu_io.h │ ├── jpu_lib.h │ ├── jpu_logging.h │ ├── json.hpp │ ├── libavcodec │ │ ├── ac3_parser.h │ │ ├── adts_parser.h │ │ ├── avcodec.h │ │ ├── avdct.h │ │ ├── avfft.h │ │ ├── d3d11va.h │ │ ├── dirac.h │ │ ├── dv_profile.h │ │ ├── dxva2.h │ │ ├── jni.h │ │ ├── mediacodec.h │ │ ├── qsv.h │ │ ├── vaapi.h │ │ ├── vdpau.h │ │ ├── version.h │ │ ├── videotoolbox.h │ │ ├── vorbis_parser.h │ │ └── xvmc.h │ ├── libavdevice │ │ ├── avdevice.h │ │ └── version.h │ ├── libavfilter │ │ ├── avfilter.h │ │ ├── buffersink.h │ │ ├── buffersrc.h │ │ └── version.h │ ├── libavformat │ │ ├── avformat.h │ │ ├── avio.h │ │ └── version.h │ ├── libavutil │ │ ├── adler32.h │ │ ├── aes_ctr.h │ │ ├── aes.h │ │ ├── attributes.h │ │ ├── audio_fifo.h │ │ ├── avassert.h │ │ ├── avconfig.h │ │ ├── avstring.h │ │ ├── avutil.h │ │ ├── base64.h │ │ ├── blowfish.h │ │ ├── bprint.h │ │ ├── bswap.h │ │ ├── buffer.h │ │ ├── camellia.h │ │ ├── cast5.h │ │ ├── channel_layout.h │ │ ├── common.h │ │ ├── cpu.h │ │ ├── crc.h │ │ ├── des.h │ │ ├── dict.h │ │ ├── display.h │ │ ├── downmix_info.h │ │ ├── encryption_info.h │ │ ├── error.h │ │ ├── eval.h │ │ ├── ffversion.h │ │ ├── fifo.h │ │ ├── file.h │ │ ├── frame.h │ │ ├── hash.h │ │ ├── hmac.h │ │ ├── hwcontext_bmcodec.h │ │ ├── hwcontext_cuda.h │ │ ├── hwcontext_d3d11va.h │ │ ├── hwcontext_drm.h │ │ ├── hwcontext_dxva2.h │ │ ├── hwcontext.h │ │ ├── hwcontext_mediacodec.h │ │ ├── hwcontext_qsv.h │ │ ├── hwcontext_vaapi.h │ │ ├── hwcontext_vdpau.h │ │ ├── hwcontext_videotoolbox.h │ │ ├── imgutils.h │ │ ├── intfloat.h │ │ ├── intreadwrite.h │ │ ├── lfg.h │ │ ├── log.h │ │ ├── lzo.h │ │ ├── macros.h │ │ ├── mastering_display_metadata.h │ │ ├── mathematics.h │ │ ├── md5.h │ │ ├── mem.h │ │ ├── motion_vector.h │ │ ├── murmur3.h │ │ ├── opt.h │ │ ├── parseutils.h │ │ ├── pixdesc.h │ │ ├── pixelutils.h │ │ ├── pixfmt.h │ │ ├── random_seed.h │ │ ├── rational.h │ │ ├── rc4.h │ │ ├── replaygain.h │ │ ├── ripemd.h │ │ ├── samplefmt.h │ │ ├── sha512.h │ │ ├── sha.h │ │ ├── spherical.h │ │ ├── stereo3d.h │ │ ├── tea.h │ │ ├── threadmessage.h │ │ ├── timecode.h │ │ ├── time.h │ │ ├── timestamp.h │ │ ├── tree.h │ │ ├── twofish.h │ │ ├── version.h │ │ └── xtea.h │ ├── libswresample │ │ ├── swresample.h │ │ └── version.h │ ├── libswscale │ │ ├── swscale.h │ │ └── version.h │ ├── libyuv │ │ ├── basic_types.h │ │ ├── compare.h │ │ ├── compare_row.h │ │ ├── convert_argb.h │ │ ├── convert_from_argb.h │ │ ├── convert_from.h │ │ ├── convert.h │ │ ├── cpu_id.h │ │ ├── macros_msa.h │ │ ├── mjpeg_decoder.h │ │ ├── planar_functions.h │ │ ├── rotate_argb.h │ │ ├── rotate.h │ │ ├── rotate_row.h │ │ ├── row.h │ │ ├── scale_argb.h │ │ ├── scale.h │ │ ├── scale_row.h │ │ ├── version.h │ │ └── video_common.h │ ├── libyuv.h │ ├── md5 │ │ └── md5.h │ ├── model_generated.h │ ├── opencv4 │ │ └── opencv2 │ │ ├── calib3d │ │ │ ├── calib3d_c.h │ │ │ └── calib3d.hpp │ │ ├── calib3d.hpp │ │ ├── core │ │ │ ├── affine.hpp │ │ │ ├── av.hpp │ │ │ ├── base.hpp │ │ │ ├── bindings_utils.hpp │ │ │ ├── bmcv.hpp │ │ │ ├── bufferpool.hpp │ │ │ ├── check.hpp │ │ │ ├── core_c.h │ │ │ ├── core.hpp │ │ │ ├── cuda │ │ │ │ ├── block.hpp │ │ │ │ ├── border_interpolate.hpp │ │ │ │ ├── color.hpp │ │ │ │ ├── common.hpp │ │ │ │ ├── datamov_utils.hpp │ │ │ │ ├── detail │ │ │ │ │ ├── color_detail.hpp │ │ │ │ │ ├── reduce.hpp │ │ │ │ │ ├── reduce_key_val.hpp │ │ │ │ │ ├── transform_detail.hpp │ │ │ │ │ ├── type_traits_detail.hpp │ │ │ │ │ └── vec_distance_detail.hpp │ │ │ │ ├── dynamic_smem.hpp │ │ │ │ ├── emulation.hpp │ │ │ │ ├── filters.hpp │ │ │ │ ├── funcattrib.hpp │ │ │ │ ├── functional.hpp │ │ │ │ ├── limits.hpp │ │ │ │ ├── reduce.hpp │ │ │ │ ├── saturate_cast.hpp │ │ │ │ ├── scan.hpp │ │ │ │ ├── simd_functions.hpp │ │ │ │ ├── transform.hpp │ │ │ │ ├── type_traits.hpp │ │ │ │ ├── utility.hpp │ │ │ │ ├── vec_distance.hpp │ │ │ │ ├── vec_math.hpp │ │ │ │ ├── vec_traits.hpp │ │ │ │ ├── warp.hpp │ │ │ │ ├── warp_reduce.hpp │ │ │ │ └── warp_shuffle.hpp │ │ │ ├── cuda.hpp │ │ │ ├── cuda.inl.hpp │ │ │ ├── cuda_stream_accessor.hpp │ │ │ ├── cuda_types.hpp │ │ │ ├── cv_bmcpu.hpp │ │ │ ├── cv_cpu_dispatch.h │ │ │ ├── cv_cpu_helper.h │ │ │ ├── cvdef.h │ │ │ ├── cvstd.hpp │ │ │ ├── cvstd.inl.hpp │ │ │ ├── cvstd_wrapper.hpp │ │ │ ├── directx.hpp │ │ │ ├── eigen.hpp │ │ │ ├── fast_math.hpp │ │ │ ├── hal │ │ │ │ ├── hal.hpp │ │ │ │ ├── interface.h │ │ │ │ ├── intrin_avx.hpp │ │ │ │ ├── intrin_cpp.hpp │ │ │ │ ├── intrin_forward.hpp │ │ │ │ ├── intrin.hpp │ │ │ │ ├── intrin_neon.hpp │ │ │ │ ├── intrin_sse_em.hpp │ │ │ │ ├── intrin_sse.hpp │ │ │ │ └── intrin_vsx.hpp │ │ │ ├── hal.hpp │ │ │ ├── ion.hpp │ │ │ ├── mat.hpp │ │ │ ├── mat.inl.hpp │ │ │ ├── matx.hpp │ │ │ ├── neon_utils.hpp │ │ │ ├── ocl_genbase.hpp │ │ │ ├── ocl.hpp │ │ │ ├── opencl │ │ │ │ ├── ocl_defs.hpp │ │ │ │ ├── opencl_info.hpp │ │ │ │ ├── opencl_svm.hpp │ │ │ │ └── runtime │ │ │ │ ├── autogenerated │ │ │ │ │ ├── opencl_clamdblas.hpp │ │ │ │ │ ├── opencl_clamdfft.hpp │ │ │ │ │ ├── opencl_core.hpp │ │ │ │ │ ├── opencl_core_wrappers.hpp │ │ │ │ │ ├── opencl_gl.hpp │ │ │ │ │ └── opencl_gl_wrappers.hpp │ │ │ │ ├── opencl_clamdblas.hpp │ │ │ │ ├── opencl_clamdfft.hpp │ │ │ │ ├── opencl_core.hpp │ │ │ │ ├── opencl_core_wrappers.hpp │ │ │ │ ├── opencl_gl.hpp │ │ │ │ ├── opencl_gl_wrappers.hpp │ │ │ │ ├── opencl_svm_20.hpp │ │ │ │ ├── opencl_svm_definitions.hpp │ │ │ │ └── opencl_svm_hsa_extension.hpp │ │ │ ├── opengl.hpp │ │ │ ├── operations.hpp │ │ │ ├── optim.hpp │ │ │ ├── ovx.hpp │ │ │ ├── persistence.hpp │ │ │ ├── saturate.hpp │ │ │ ├── softfloat.hpp │ │ │ ├── sse_utils.hpp │ │ │ ├── traits.hpp │ │ │ ├── types_c.h │ │ │ ├── types.hpp │ │ │ ├── utility.hpp │ │ │ ├── utils │ │ │ │ ├── filesystem.hpp │ │ │ │ ├── logger.defines.hpp │ │ │ │ ├── logger.hpp │ │ │ │ └── trace.hpp │ │ │ ├── va_intel.hpp │ │ │ ├── version.hpp │ │ │ └── vsx_utils.hpp │ │ ├── core.hpp │ │ ├── cvconfig.h │ │ ├── dnn │ │ │ ├── all_layers.hpp │ │ │ ├── dict.hpp │ │ │ ├── dnn.hpp │ │ │ ├── dnn.inl.hpp │ │ │ ├── layer.details.hpp │ │ │ ├── layer.hpp │ │ │ ├── shape_utils.hpp │ │ │ ├── utils │ │ │ │ └── inference_engine.hpp │ │ │ └── version.hpp │ │ ├── dnn.hpp │ │ ├── features2d │ │ │ ├── features2d.hpp │ │ │ └── hal │ │ │ └── interface.h │ │ ├── features2d.hpp │ │ ├── flann │ │ │ ├── all_indices.h │ │ │ ├── allocator.h │ │ │ ├── any.h │ │ │ ├── autotuned_index.h │ │ │ ├── composite_index.h │ │ │ ├── config.h │ │ │ ├── defines.h │ │ │ ├── dist.h │ │ │ ├── dummy.h │ │ │ ├── dynamic_bitset.h │ │ │ ├── flann_base.hpp │ │ │ ├── flann.hpp │ │ │ ├── general.h │ │ │ ├── ground_truth.h │ │ │ ├── heap.h │ │ │ ├── hierarchical_clustering_index.h │ │ │ ├── index_testing.h │ │ │ ├── kdtree_index.h │ │ │ ├── kdtree_single_index.h │ │ │ ├── kmeans_index.h │ │ │ ├── linear_index.h │ │ │ ├── logger.h │ │ │ ├── lsh_index.h │ │ │ ├── lsh_table.h │ │ │ ├── matrix.h │ │ │ ├── miniflann.hpp │ │ │ ├── nn_index.h │ │ │ ├── object_factory.h │ │ │ ├── params.h │ │ │ ├── random.h │ │ │ ├── result_set.h │ │ │ ├── sampling.h │ │ │ ├── saving.h │ │ │ ├── simplex_downhill.h │ │ │ └── timer.h │ │ ├── flann.hpp │ │ ├── freetype.hpp │ │ ├── gapi │ │ │ ├── core.hpp │ │ │ ├── cpu │ │ │ │ ├── core.hpp │ │ │ │ ├── gcpukernel.hpp │ │ │ │ └── imgproc.hpp │ │ │ ├── fluid │ │ │ │ ├── core.hpp │ │ │ │ ├── gfluidbuffer.hpp │ │ │ │ ├── gfluidkernel.hpp │ │ │ │ └── imgproc.hpp │ │ │ ├── garg.hpp │ │ │ ├── garray.hpp │ │ │ ├── gcall.hpp │ │ │ ├── gcommon.hpp │ │ │ ├── gcompiled.hpp │ │ │ ├── gcompoundkernel.hpp │ │ │ ├── gcomputation.hpp │ │ │ ├── gkernel.hpp │ │ │ ├── gmat.hpp │ │ │ ├── gmetaarg.hpp │ │ │ ├── gproto.hpp │ │ │ ├── gpu │ │ │ │ ├── core.hpp │ │ │ │ ├── ggpukernel.hpp │ │ │ │ └── imgproc.hpp │ │ │ ├── gscalar.hpp │ │ │ ├── gtyped.hpp │ │ │ ├── gtype_traits.hpp │ │ │ ├── imgproc.hpp │ │ │ ├── ocl │ │ │ │ ├── core.hpp │ │ │ │ ├── goclkernel.hpp │ │ │ │ └── imgproc.hpp │ │ │ ├── opencv_includes.hpp │ │ │ ├── operators.hpp │ │ │ ├── own │ │ │ │ ├── assert.hpp │ │ │ │ ├── convert.hpp │ │ │ │ ├── cvdefs.hpp │ │ │ │ ├── exports.hpp │ │ │ │ ├── mat.hpp │ │ │ │ ├── saturate.hpp │ │ │ │ ├── scalar.hpp │ │ │ │ └── types.hpp │ │ │ └── util │ │ │ ├── any.hpp │ │ │ ├── compiler_hints.hpp │ │ │ ├── optional.hpp │ │ │ ├── throw.hpp │ │ │ ├── util.hpp │ │ │ └── variant.hpp │ │ ├── gapi.hpp │ │ ├── highgui │ │ │ ├── highgui_c.h │ │ │ └── highgui.hpp │ │ ├── highgui.hpp │ │ ├── imgcodecs │ │ │ ├── imgcodecs_c.h │ │ │ ├── imgcodecs.hpp │ │ │ ├── ios.h │ │ │ └── legacy │ │ │ └── constants_c.h │ │ ├── imgcodecs.hpp │ │ ├── imgproc │ │ │ ├── detail │ │ │ │ └── gcgraph.hpp │ │ │ ├── hal │ │ │ │ ├── hal.hpp │ │ │ │ └── interface.h │ │ │ ├── imgproc_c.h │ │ │ ├── imgproc.hpp │ │ │ ├── types_c.h │ │ │ └── vpp.hpp │ │ ├── imgproc.hpp │ │ ├── ml │ │ │ ├── ml.hpp │ │ │ └── ml.inl.hpp │ │ ├── ml.hpp │ │ ├── objdetect │ │ │ ├── detection_based_tracker.hpp │ │ │ └── objdetect.hpp │ │ ├── objdetect.hpp │ │ ├── opencv.hpp │ │ ├── opencv_modules.hpp │ │ ├── photo │ │ │ ├── cuda.hpp │ │ │ ├── legacy │ │ │ │ └── constants_c.h │ │ │ └── photo.hpp │ │ ├── photo.hpp │ │ ├── stitching │ │ │ ├── detail │ │ │ │ ├── autocalib.hpp │ │ │ │ ├── blenders.hpp │ │ │ │ ├── camera.hpp │ │ │ │ ├── exposure_compensate.hpp │ │ │ │ ├── matchers.hpp │ │ │ │ ├── motion_estimators.hpp │ │ │ │ ├── seam_finders.hpp │ │ │ │ ├── timelapsers.hpp │ │ │ │ ├── util.hpp │ │ │ │ ├── util_inl.hpp │ │ │ │ ├── warpers.hpp │ │ │ │ └── warpers_inl.hpp │ │ │ └── warpers.hpp │ │ ├── stitching.hpp │ │ ├── video │ │ │ ├── background_segm.hpp │ │ │ ├── legacy │ │ │ │ └── constants_c.h │ │ │ ├── tracking.hpp │ │ │ └── video.hpp │ │ ├── video.hpp │ │ ├── videoio │ │ │ ├── cap_ios.h │ │ │ ├── legacy │ │ │ │ └── constants_c.h │ │ │ ├── registry.hpp │ │ │ ├── videoio_c.h │ │ │ └── videoio.hpp │ │ └── videoio.hpp │ ├── tpu_bitcasts.h │ ├── tpu_fp16_base.h │ ├── tpu_fp16.h │ ├── tpu_fp16.hpp │ ├── user_bmcpu_common.h │ ├── user_bmcpu.h │ ├── utils.hpp │ ├── vppion.h │ ├── vpplib.h │ └── yolov5.hpp └── lib ├── cmake │ ├── FFMPEGConfig.cmake │ └── opencv4 │ ├── OpenCVConfig.cmake │ ├── OpenCVConfig-version.cmake │ ├── OpenCVModules.cmake │ └── OpenCVModules-release.cmake ├── libavcodec.a ├── libavcodec.so -> libavcodec.so.58.35.100-sophon-0.7.0 ├── libavcodec.so.58 -> libavcodec.so.58.35.100-sophon-0.7.0 ├── libavcodec.so.58.35.100-sophon-0.7.0 ├── libavdevice.a ├── libavdevice.so -> libavdevice.so.58.5.100-sophon-0.7.0 ├── libavdevice.so.58 -> libavdevice.so.58.5.100-sophon-0.7.0 ├── libavdevice.so.58.5.100-sophon-0.7.0 ├── libavfilter.a ├── libavfilter.so -> libavfilter.so.7.40.101-sophon-0.7.0 ├── libavfilter.so.7 -> libavfilter.so.7.40.101-sophon-0.7.0 ├── libavfilter.so.7.40.101-sophon-0.7.0 ├── libavformat.a ├── libavformat.so -> libavformat.so.58.20.100-sophon-0.7.0 ├── libavformat.so.58 -> libavformat.so.58.20.100-sophon-0.7.0 ├── libavformat.so.58.20.100-sophon-0.7.0 ├── libavutil.a ├── libavutil.so -> libavutil.so.56.22.100-sophon-0.7.0 ├── libavutil.so.56 -> libavutil.so.56.22.100-sophon-0.7.0 ├── libavutil.so.56.22.100-sophon-0.7.0 ├── libbmcv.a ├── libbmcv.so -> libbmcv.so.0 ├── libbmcv.so.0 -> libbmcv.so.0.7.0 ├── libbmcv.so.0.7.0 ├── libbmion.so -> libbmion.so.0 ├── libbmion.so.0 -> libbmion.so.0.7.0 ├── libbmion.so.0.7.0 ├── libbmjpuapi.so -> libbmjpuapi.so.0 ├── libbmjpuapi.so.0 -> libbmjpuapi.so.0.7.0 ├── libbmjpuapi.so.0.7.0 ├── libbmjpulite.so -> libbmjpulite.so.0 ├── libbmjpulite.so.0 -> libbmjpulite.so.0.7.0 ├── libbmjpulite.so.0.7.0 ├── libbmlib.so -> libbmlib.so.0 ├── libbmlib.so.0 ├── libbmodel.a ├── libbmrt.so -> libbmrt.so.1.0 ├── libbmrt.so.1.0 ├── libbmvideo.so -> libbmvideo.so.0 ├── libbmvideo.so.0 -> libbmvideo.so.0.7.0 ├── libbmvideo.so.0.7.0 ├── libbmvppapi.so -> libbmvppapi.so.0 ├── libbmvppapi.so.0 -> libbmvppapi.so.0.7.0 ├── libbmvppapi.so.0.7.0 ├── libbmvpuapi.so -> libbmvpuapi.so.0 ├── libbmvpuapi.so.0 -> libbmvpuapi.so.0.7.0 ├── libbmvpuapi.so.0.7.0 ├── libbmvpulite.so -> libbmvpulite.so.0 ├── libbmvpulite.so.0 -> libbmvpulite.so.0.7.0 ├── libbmvpulite.so.0.7.0 ├── libcpuop.so -> libcpuop.so.0.4.9 ├── libcpuop.so.0.4.9 ├── libopencv_calib3d.so -> libopencv_calib3d.so.4.1 ├── libopencv_calib3d.so.4.1 -> libopencv_calib3d.so.4.1.0-sophon-0.7.0 ├── libopencv_calib3d.so.4.1.0-sophon-0.7.0 ├── libopencv_core.so -> libopencv_core.so.4.1 ├── libopencv_core.so.4.1 -> libopencv_core.so.4.1.0-sophon-0.7.0 ├── libopencv_core.so.4.1.0-sophon-0.7.0 ├── libopencv_dnn.so -> libopencv_dnn.so.4.1 ├── libopencv_dnn.so.4.1 -> libopencv_dnn.so.4.1.0-sophon-0.7.0 ├── libopencv_dnn.so.4.1.0-sophon-0.7.0 ├── libopencv_features2d.so -> libopencv_features2d.so.4.1 ├── libopencv_features2d.so.4.1 -> libopencv_features2d.so.4.1.0-sophon-0.7.0 ├── libopencv_features2d.so.4.1.0-sophon-0.7.0 ├── libopencv_flann.so -> libopencv_flann.so.4.1 ├── libopencv_flann.so.4.1 -> libopencv_flann.so.4.1.0-sophon-0.7.0 ├── libopencv_flann.so.4.1.0-sophon-0.7.0 ├── libopencv_freetype.so -> libopencv_freetype.so.4.1 ├── libopencv_freetype.so.4.1 -> libopencv_freetype.so.4.1.0-sophon-0.7.0 ├── libopencv_freetype.so.4.1.0-sophon-0.7.0 ├── libopencv_gapi.so -> libopencv_gapi.so.4.1 ├── libopencv_gapi.so.4.1 -> libopencv_gapi.so.4.1.0-sophon-0.7.0 ├── libopencv_gapi.so.4.1.0-sophon-0.7.0 ├── libopencv_highgui.so -> libopencv_highgui.so.4.1 ├── libopencv_highgui.so.4.1 -> libopencv_highgui.so.4.1.0-sophon-0.7.0 ├── libopencv_highgui.so.4.1.0-sophon-0.7.0 ├── libopencv_imgcodecs.so -> libopencv_imgcodecs.so.4.1 ├── libopencv_imgcodecs.so.4.1 -> libopencv_imgcodecs.so.4.1.0-sophon-0.7.0 ├── libopencv_imgcodecs.so.4.1.0-sophon-0.7.0 ├── libopencv_imgproc.so -> libopencv_imgproc.so.4.1 ├── libopencv_imgproc.so.4.1 -> libopencv_imgproc.so.4.1.0-sophon-0.7.0 ├── libopencv_imgproc.so.4.1.0-sophon-0.7.0 ├── libopencv_ml.so -> libopencv_ml.so.4.1 ├── libopencv_ml.so.4.1 -> libopencv_ml.so.4.1.0-sophon-0.7.0 ├── libopencv_ml.so.4.1.0-sophon-0.7.0 ├── libopencv_objdetect.so -> libopencv_objdetect.so.4.1 ├── libopencv_objdetect.so.4.1 -> libopencv_objdetect.so.4.1.0-sophon-0.7.0 ├── libopencv_objdetect.so.4.1.0-sophon-0.7.0 ├── libopencv_photo.so -> libopencv_photo.so.4.1 ├── libopencv_photo.so.4.1 -> libopencv_photo.so.4.1.0-sophon-0.7.0 ├── libopencv_photo.so.4.1.0-sophon-0.7.0 ├── libopencv_stitching.so -> libopencv_stitching.so.4.1 ├── libopencv_stitching.so.4.1 -> libopencv_stitching.so.4.1.0-sophon-0.7.0 ├── libopencv_stitching.so.4.1.0-sophon-0.7.0 ├── libopencv_videoio.so -> libopencv_videoio.so.4.1 ├── libopencv_videoio.so.4.1 -> libopencv_videoio.so.4.1.0-sophon-0.7.0 ├── libopencv_videoio.so.4.1.0-sophon-0.7.0 ├── libopencv_video.so -> libopencv_video.so.4.1 ├── libopencv_video.so.4.1 -> libopencv_video.so.4.1.0-sophon-0.7.0 ├── libopencv_video.so.4.1.0-sophon-0.7.0 ├── libswresample.a ├── libswresample.so -> libswresample.so.3.3.100-sophon-0.7.0 ├── libswresample.so.3 -> libswresample.so.3.3.100-sophon-0.7.0 ├── libswresample.so.3.3.100-sophon-0.7.0 ├── libswscale.a ├── libswscale.so -> libswscale.so.5.3.100-sophon-0.7.0 ├── libswscale.so.5 -> libswscale.so.5.3.100-sophon-0.7.0 ├── libswscale.so.5.3.100-sophon-0.7.0 ├── libturing_env.so ├── libusercpu.so -> libusercpu.so.0.4.9 ├── libusercpu.so.0.4.9 ├── libvideo_bm.so -> libbmvideo.so ├── libvpp.a ├── libvpp_cmodel.so ├── libvpp.so -> libvpp.so.0 ├── libvpp.so.0 -> libvpp.so.0.7.0 ├── libvpp.so.0.7.0 ├── libyuv.a ├── libyuv.so -> libyuv.so.0 ├── libyuv.so.0 -> libyuv.so.0.7.0 ├── libyuv.so.0.7.0 ├── pkgconfig │ ├── libavcodec.pc │ ├── libavdevice.pc │ ├── libavfilter.pc │ ├── libavformat.pc │ ├── libavutil.pc │ ├── libswresample.pc │ ├── libswscale.pc │ └── opencv4.pc ├── tpu_module │ └── libbm1684x_kernel_module.so └── vpu_firmware ├── chagall.bin └── chagall_dec.bin
另外,makefile内容如下
- CC = aarch64-linux-gnu-gcc
- CPP = aarch64-linux-gnu-g++
- AR = ar
- RM = rm -f
-
- #Define the resource compiler.
- RC = windres
-
- ## debug flag
- DBG_ENABLE := 0
-
- OS = $(shell uname)
-
- ## source file path
- SRC_PATH := ./cpp/ #./include/utils/
- SRC_PATH_EXT :=
- DEMO :=./demo/main.cpp
-
- ## target file name
- TARGET := turing_env
- DEMO_TARGET := env_demo
-
- ## get all source files
- SRCS := $(foreach spath, $(SRC_PATH), $(wildcard $(spath)*.c) $(wildcard $(spath)*.cpp))
-
- ## all .o based on all .c/.cpp
- OBJS = $(SRCS:.c=.o)
- OBJS := $(OBJS:.cpp=.o)
-
- ## macro define
- #DEFS := __LINUX__ OS_LINUX _FILE_OFFSET_BITS=64
- DEFS := __LINUX__ OS_LINUX
-
- #if freeimage is static-linked use this !
- #DEFS += FREEIMAGE_LIB
-
- ## need libs, add at here
- LIBS := bmrt bmlib bmcv dl \
- opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_video \
- bmvideo swresample swscale avformat avutil \
- #protobuf gflags glog boost_system boost_filesystem pthread bmjpuapi bmjpulite #asan
-
- DEMO_LIBS = $(LIBS)
- DEMO_LIBS += turing_env
-
- ## used headers file path
- INCLUDE_PATH := ./include ./include/third /usr/local/cuda/include ./src ./include/biz_sdk ./include/biz_common ./include/spdlog ./include/utils ./include/rapidjson ./
- INCLUDE_PATH += ./include/tcp_pubsub #add by chw
- INCLUDE_PATH += ./include
- INCLUDE_PATH += ./include/rapidjson
- INCLUDE_PATH += ./include/bmruntime
- INCLUDE_PATH += ./include/bmlib
- INCLUDE_PATH += ./include/third_party/boost/include
- INCLUDE_PATH += ./include/opencv4
- INCLUDE_PATH += ./include/ffmpeg ./include
-
- #$(warning $(INCLUDE_PATH))
-
- ## used include librarys file path
- LIBRARY_PATH := ./ ./lib ./lib/thirdparty/soc ./lib/bmnn/soc ./lib/opencv/soc ./lib/ffmpeg/soc ./lib/decode/soc
-
- ## debug for debug info, when use gdb to debug
- ifeq (1, ${DBG_ENABLE})
- CFLAGS += -D_DEBUG -g -DDEBUG=1
- else
- CFLAGS += -O2 -DNDEBUG
- endif
-
- #for ENCYPT flags
-
- ifeq ($(OS), Linux)
- LIBS += dl rt
- CFLAGS += -fPIC
- TARGET_EXT := .so
- LIBRARY_PATH +=
- LDFLAGS += -Wl,--rpath=./lib
- LDFLAGS += -Wl,--rpath=./lib/thirdparty/soc
- LDFLAGS += -Wl,--rpath=./lib/bmnn/soc
- LDFLAGS += -Wl,--rpath=./lib/opencv/soc
- LDFLAGS += -Wl,--rpath=./lib/ffmpeg/soc
- LDFLAGS += -Wl,--rpath=./lib/decode/soc
- endif
-
- #CFLAGS += -msse4.2 -march=core2 -pipe $(foreach m, $(DEFS), -D$(m))
-
- CFLAGS += -pipe $(foreach m, $(DEFS), -D$(m))
-
- ## get all include path
- CFLAGS += $(foreach dir, $(INCLUDE_PATH), -I$(dir)) #-fsanitize=address -g
- ##CFLAGS += $(foreach dir, $(INCLUDE_PATH), -I$(dir)) -fvisibility=hidden
-
- CXXFLAGS += $(CFLAGS) -std=c++11
-
- ## get all library path
- #LDFLAGS += -lpthread -fsanitize=address $(foreach lib, $(LIBRARY_PATH), -L$(lib))
- LDFLAGS += -lpthread $(foreach lib, $(LIBRARY_PATH), -L$(lib))
- DEMO_LDFLAGS := $(LDFLAGS)
- ## get all librarys
- LDFLAGS += $(foreach lib, $(LIBS), -l$(lib))
-
- DEMO_LDFLAGS += $(foreach lib, $(DEMO_LIBS), -l$(lib))
-
- RCFLAGS ?= -DNDEBUG
-
-
- default: all
-
- %.o: %.c
- $(CC) $(CFLAGS) -g -c $< -o $@
-
- %.o: %.cpp
- $(CPP) $(CXXFLAGS) -g -c $< -o $@
-
- all: $(OBJS) $(RESOURCE)
- #$(CPP) $(CXXFLAGS) -o $(TARGET) $(OBJS) $(RESOURCE) $(LDFLAGS)
- $(CPP) $(CXXFLAGS) -g -shared -o lib$(TARGET)$(TARGET_EXT) $(OBJS) $(RESOURCE) $(LDFLAGS)
- mv libturing_env.so ./lib
- $(CPP) $(CXXFLAGS) -g -o $(DEMO_TARGET) $(DEMO) $(DEMO_LDFLAGS)
-
- clean:
- $(RM) $(OBJS) $(DEMO_TARGET) $(TARGET).* $(RESOURCE)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。