Skip to content

Instantly share code, notes, and snippets.

Mars hewumars

Block or report user

Report or block hewumars

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View readme.md
  1. 根据AI产品需求完成技术方案设计及算法设计和核心模块开发
  2. 计算机算法的技术方向、技术难点攻关、性能优化等
  3. AI算法在嵌入式(异构平台)和服务器平台部署的研究和实现
  4. 技术上把关交付算法的性能和功能

我优势:

  1. 独立完成算法技术方案设计、嵌入式和服务器平台部署
  2. 模型压缩、量化
View readme.md
  • 主干网络(Backbone):其作用是从图像中抽取特征,将图像从像素空间转换到高维的特征空间,例如 VGG 和 ResNet-50 等都是常用的主干网络;
  • 衔接部分(Neck):连接主干网络和头部的结构。它对主干网络生成的原初始特征图执行一些优化或重新配置,例如特征金字塔网络(FPN)就是一种典型的 Neck。
  • 密集连接头(DenseHead):用于在特征图所映射的密集位置上进行操作,包括 AnchorHead 和 AnchorFreeHead,代表性操作有 RPN、Retina、FCOS 等。
  • RoI 抽取器:从一个或多个特征映射中提取 RoIPooling 类算子特征。从相应级别的特征金字塔中提取 RoI 特征的示例是 SingleRoIExtractor。
  • RoI 连接头(BBoxHead / MaskHead):将 RoI 特征作为输入并计算出对于的任务结果,包括 bbox 的位置、分类或者分割的预测结果。

https://ask.qcloudimg.com/http-save/yehe-1326493/zcmb1ptecl.png?imageView2/2/w/1620

View thread_safe_queue.h
/************
* 存放yuv数据的全局队列
* ThreadSafeQueue<shared_ptr<VideoImageParaT>> yuv_image_queue(kImageDataQueueSize);
**************/
#ifndef THREAD_SAFE_QUEUE_H_
#define THREAD_SAFE_QUEUE_H_
#include <mutex>
#include <queue>
View readme.md
  1. 获取PID进程的内存信息 pmap -x ${pid} | sed 's/[//;s/]//' | grep rw | awk '{total[$7]+=$2}END{for(v in total){print total[v],v}}' | sort -n
  2. 查看进程内存 cat /proc/${pid}/status
  3. 系统内存信息 cat /proc/meminfo
  4. ffmpeg -i test.mp4 -vcodec h264 -bf 0 -g 25 -r 10 -s 1280*720 -an -f h264 test1.264 //-bf B帧数目控制,-g 关键帧间隔控制, -s 分辨率控制 -an关闭音频,-r 指定帧率
View 20190806.md
网络 耗时(batch=1)(3.4GB) 耗时(Batch=4)
ObjectDetectStageCentG320x384 18.99000
ObjectDetectStageV160x128 4.001000
VehiclePlateSegmentCH 0.879000
VehicleDriverGeneral 3.446000
VehiclePlateNo 2.013000
VehiclePlateAlignCH 1.655000
VehiclePlateNameCH 1.576000
VehiclePlateExceptionPlate 1.012000
View 1.cpp
ImageData<uint8_t> resized_image;
int out_size = ALIGN_UP(input_tensor_dim_vec_[model_id].w, 128) * ALIGN_UP(input_tensor_dim_vec_[model_id].h, 16) * 3/2;
uint8_t * out_buffer = (uint8_t *)memalign(128, out_size);
if (out_buffer == NULL)
{
HIAI_ENGINE_LOG("Hfbc2Yuv call memalign failed");
return HIAI_ERROR;
}
resized_image.size = out_size;
resized_image.width = input_tensor_dim_vec_[model_id].w;
View readme.md
  1. docker install: sudo apt-get install docker.io sudo usermod -aG docker $USER

  2. docker load: docker load < bmnnsdk-bm1682_v2.0.1.docker

  3. docker run: bmnnsdk2/bmnnsdk2-bm1682_v1.1.3.2$ ./docker_run_bmnnsdk.sh

View CMakeList1.txt
if(CONAN_LIBCXX STREQUAL "libstdc++11")
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
elseif(CONAN_LIBCXX STREQUAL "libstdc++")
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
endif()
View 20190703.md
  1. om模型验证时,没有工具,需要每个model对应去创建graph保存结果,再去和caffe工程对比。(解决,自己写工具,但是不高效)检测模型0.1误差下达到83.3%相似度,识别模型0.01误差下92.1%

  2. mindstudio不适合开发,cmake重构工程(解决)

  3. 升级SDK后,sample报错,graph init fail,后替换main文件解决

  4. Deconvolution group>1时转换om报错,重新用回Upsample层(解决)

  5. 量化时,网络中存在Upsample层量化失败(未解决)

  6. 单Engine多model(后提供资料解决)

  7. 突然断电,导致npu-smi无法找到npu card,报错drv_dcmi(未解决,直接重装)[dcmi_drv_api.c, 2879, dcmi_get_card_num_list]: not init. Failed to get card number.

  8. 性能测试,多分支和小输入网络速度明显变慢,例如116x116正常在1ms以内。

@hewumars
hewumars / ReadBinFile.c
Last active Jun 22, 2019
1.cnet.py --path 模型保存路径 --name 模型名称 --shape 1 3 16 56 --outputs prob1 rect1 fc1x 执行caffe推理生成输入bin,输出bin 2.bin2float.py caffe_out.bin npu_out.bin 0.001 对比输出bin和其他硬件推理引擎获得的输出bin 3.utils.py工具生成随机数据或者读取jpg
View ReadBinFile.c
//读取二进制文件,用于numpy.tofile生成的随机数据,或者是图像rgb数据。模型验证时使用。
char* ReadBinFile(const char *file_name, uint32_t *fileSize)
{
std::filebuf *pbuf;
std::ifstream filestr;
size_t size;
filestr.open(file_name, std::ios::binary);
if (!filestr)
{
return nullptr;
You can’t perform that action at this time.