-
图片视频分类标记
```importosimportcv2importtimeimportargparseimportsubprocessimportnumpyasnpdefto_to_mp4(ts_file:str)->str:mp4_file=ts_file.replace(".ts",".mp4")ifos.path.exists(mp4_file):returnmp4_filecmd=["ffmpeg","-y","-i",ts_file,"-c:v","copy","-c:a","copy","-movflags","+faststart",mp4_file,]proc=subprocess.run(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=False,)ifproc.returncode==0:returnmp4_fileelse:returnNonedefclassify_video(video_path):print(f"开始处理视频:{video_path}")globalindex,jiedi_count,yandian_count,...
YOLO -
人脸识别流程和音频识别流程
##人脸识别流程*人脸检测:SCRFD*人脸过滤:大小、角度、亮度*人脸对齐:仿射变换*活体检测*特征提取:ArcFace*特征检索##音频识别流程*AEC*ANS*VAD*AGC*ASR*Diar*SID|英文缩写|英文全称|中文术语||:--|:--|:--||AEC|AcousticEchoCancellation|回声消除||ANS|AcousticNoiseSuppression|噪声抑制、降噪||VAD|VoiceActivityDetection|语音活动检测、语音端点检测、静音检测||AGC|AutomaticGainControl|自动增益控制、音量自动调节||ASR|AutomaticSpeechRecognition|自动语音识别、语音转写||Diar|SpeakerDiarization|说话人分簇、说话人日志||SID|SpeakerIdentification|说话人识别、声纹识别|
人脸识别 音频识别 -
rkllm部署
#RKLLM*https://github.com/airockchip/rknn-llm##模型转换(X64)*https://github.com/airockchip/rknn-llm/tree/main/doc参考上面文档:1.创建环境`condacreate-nrkllmpython=3.12`2.安装工具`pipinstallrkllm_toolkit-1.3.0-cp312-cp312-linux_x86_64.whl`3.下载模型`modelscopedownload--modeldeepseek-ai/DeepSeek-R1-Distill-Qwen-7B--local_dir./DeepSeek-R1-Distill-Qwen-7B`4.转换模型`/data/rkllm/rknn-llm-release-v1.3.0/examples/rkllm_api_demo/export`-生成数据`pythongenerate_data_quant.py-m/data/rkllm/DeepSeek-R1-Distill-Qwen-7B`-转换模型`pythonexport_rkllm.py`##部...
rkllm -
ffmpeg sws_scale avframe转为cv::Mat崩溃
使用`sws_scale`将`avframe`转为`cv::Mat`,`windows`没有问题,但是`linux`在分辨率`1080*1920`时就会崩溃,提示`doublefreeorcorruption(!prev)`。这里需要宽度按照`32`对齐,所以需要先对齐在裁切即可。```intw=frame->width;inth=frame->height;if(frame->width%32!=0){w=((w+31)/32)*32;}cv::Matmat(h,w,CV_8UC3);uint8_t*dst_data=mat.data;intdst_stride=mat.step1();intout_heigth=sws_scale(sws_ctx,frame->data,frame->linesize,0,h,&dst_data,&dst_stride);if(frame->width%32!=0){mat=mat(cv::Rect(0,0,frame->width,frame->height));}```
ffmpeg opencv sws_scale avframe cv::Mat -
clang常见配置
#.clang-format```BasedOnStyle:GoogleUseTab:NeverTabWidth:4IndentWidth:4ColumnLimit:512AlignConsecutiveAssignments:trueAlignConsecutiveDeclarations:true```#.clang-tidy```#-DCMAKE_EXPORT_COMPILE_COMMANDS=ONChecks:>misc-*,bugprone-*,modernize-*,performance-*,readability-*,-llvm-*,-abseil-*,-google-*,-fuchsia-*,-readability-function-size,-readability-magic-numbers,-readability-identifier-length,-modernize-use-trailing-return-type,-bugprone-easily-swappable-parameters,-readability-redundant-access-specifiers,...
clang -
代码里面忽略格式化命令的注释
#Python```#fmt:off#fmt:on```#Java```//@formatter:off//注意冒号后面不能含有空格//@formatter:on```#C++```//clang-formatoff//clang-formaton```
格式化 -
unsloth错误
错误如下:```Skippingimportofcppextensionsduetoincompatibletorchversion.Pleaseupgradetotorch>=2.11.0(found2.10.0+cu128)./data/conda/anaconda3/envs/ai/lib/python3.12/site-packages/unsloth/__init__.py:165:UserWarning:WARNING:Unslothshouldbeimportedbefore[trl,transformers,peft]toensurealloptimizationsareapplied.Yourcodemayrunslowerorencountermemoryissueswithouttheseoptimizations.Pleaserestructureyourimportswith'importunsloth'atthetopofyourfile.from._gpu_initimport*🦥Unsloth:Willpatchyourcomputertoenable2xfasterf...
unsloth -
cl命令编译代码
使用命令`clxx.cpp`总是提示`LINK:fatalerrorLNK1104:无法打开文件“LIBCMT.lib”`,这时我们需要配置头文件和库文件的环境变量:#`INCLUDE````C:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.26100.0\umC:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.26100.0\ucrtC:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.26100.0\winrtC:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.26100.0\sharedC:\ProgramFiles\MicrosoftVisualStudio\2022\Community\VC\Tools\MSVC\14.44.35207\include```#`LIB````C:\ProgramFiles(x86)\WindowsKits\10\Lib\10.0.26100.0\um\x64C:\ProgramFile...
cl msvc -
ffmpeg录制RTP时出现卡顿
最近发现一个问题`ffmpeg`录制`webrtc`媒体没有问题,但是录制`gb28181`上来的媒体时,出现卡顿,时快时慢的现象,最后添加下面参数解决:```-fflags+genpts+discardcorrupt-use_wallclock_as_timestamps1```完整命令:```ffmpeg-y-protocol_whitelist"file,rtp,udp"-rtbufsize16M-max_delay1000000-reorder_queue_size2048-thread_queue_size2048-fflags+genpts+discardcorrupt-use_wallclock_as_timestamps1-c:alibopus-i\data\record\media-server\media-cpp\20260605\20260605114224.sdp-c:aaac-c:vcopy-fsegment-segment_time10-segment_list\data\record\media-server\media-cpp\20260605\20260605114224\i...
ffmpeg rtp -
牛码-0001
##guava->Strings.repeat```char[]array=newchar[size];string.getChars(0,len,array,0);intn;for(n=len;n<size-n;n<<=1){arraycopy(array,0,array,n,n);}arraycopy(array,0,array,n,size-n);returnnewString(array);```
🐂🖊代码 -
SpringMVC参数注入为null问题
遇到一个非常奇怪的`BUG`,使用`SpringMVC`参数注入,不管是加不加`@RequestParam`,还是使用`request.getParameter`获取参数都是`null`。但是使用`request.getQueryString()`和`Nginx`日志都有参数。最后`Nginx`添加配置`proxy_set_headerConnectionkeep-alive;`就解决了😂😂😂虽然不知道原因😂😂😂
SpringBoot SprintMVC Nginx -
windows使用MSVC编译mlc-llm
已经安装`MSVC`和`rust`环境了,还有下面这些问题:##字符问题```[build]D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(140,60):errorC2001:常量中有换行符[D:\gitee\template\llm\mlc-llm\build\mlc-llm\mlc_llm_objs.vcxproj][build]D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(141,7):errorC2143:语法错误:缺少“;”(在“return”的前面)[D:\gitee\template\llm\mlc-llm\build\mlc-llm\mlc_llm_objs.vcxproj][build]D:\gitee\template\llm\mlc-llm\mlc-llm\3rdparty\xgrammar\cpp\tokenizer.cc(141,18):errorC2143:语法错误:缺少“)”(在“;...
MSVC mlc-llm -
VSCode配置conda库
选择了`conda`的`python`解释器,但是还是找不到依赖库,这时需要配置`.vscode/settings.json`添加:```"python.analysis.extraPaths":["D:\\develop\\miniconda3\\Lib\\site-packages"]```
VSCode conda -
磁盘空闲超时
##查询电源方案列表```C:\Users\acgis>powercfg/l现有电源使用方案(*Active)-----------------------------------电源方案GUID:381b4222-f694-41f0-9685-ff5bb260df2e(平衡)*```##查询硬盘配置标识```C:\Users\acgis>powercfg/q381b4222-f694-41f0-9685-ff5bb260df2e|findstr硬盘子组GUID:0012ee47-9041-4b5d-9b77-535fba8b1442(硬盘)电源设置GUID:6738e2c4-e8a5-4a42-b16a-e040e769756e(在此时间后关闭硬盘)```##查询硬盘休眠配置```C:\Users\acgis>powercfg/query381b4222-f694-41f0-9685-ff5bb260df2e0012ee47-9041-4b5d-9b77-535fba8b14426738e2c4-e8a5-4a42-b16a-e040e769756e电源方案GUID:381b4222-f6...
磁盘空闲超时 在此时间后关闭硬盘 -
提示词技巧
用AI总结了两次,感觉两次都不错所有都列出来了。---##一、书本原文核心基础技巧(全书必背)###1.核心底层:提问意识——好答案源于好问题1.拒绝模糊提问:禁止“帮我写一下”“给我解释”这类无边界需求。2.目标先行:先明确**用途、受众、场景、目标**,再写提示词。3.具体化原则:时间、数量、风格、篇幅、格式、角度全部写清。4.批判性提问:不被动接收AI答案,主动限定条件、约束边界、要求举证。###2.万能基础四要素(书本核心框架)所有提示词必须补齐4项:-**角色**:给AI指定身份(专家、老师、工程师、文案、顾问)-**任务**:明确具体要做什么,动作清晰-**约束**:禁止什么、限制什么、规避什么-**输出**:格式、结构、字数、语言、排版要求###3.结构化提示技巧1.分段书写:用标题、序号、分割线分层,降低AI理解成本。2.指令分层:核心任务→附加要求→格式要求→禁忌要求,顺序清晰。3.关键词加粗/强调:重点约束词突出,让AI优先遵守。4.模板化写作:固定复用框架,减少每次重复造轮子。###4.精准表达优化技巧1.替换模糊词:把“大概、简单、详细”替换为具体量化。2.量化限制:指定字数、条数、页...
提示词 学会提问 驾驭AI:提示词从入门到精通 -
SpringAI使用deepseek总是超时
最近使用`deepseek`服务总是出现超时,最开始确实是`deepseek`服务的问题,但是后来发现使用`dify`的时候没有问题,就是使用`SpringAI`的时候有问题。最后发现原来`spring`默认使用的是`JDK`内置的`HttpClient`这个组件`BUG`太多了。这个里面默认连接池空闲时间是`20`分钟,可以修改配置`jdk.httpclient.keepalive.timeout`,但是据我观察这个配置没有效果(好像这个配置只有`HTTP1.1`协议有效`deepseek`使用的是`HTTP2`)。然后估计是`deepseek`服务并发太高导致崩溃,所以他们直接将连接丢弃,没有正常关闭,所以导致客户端这边长连接不能正常释放。所以以上种种巧合导致,连接不能使用出现超时。现在升级`JDK21`已经正常。还有就是`SpringAI`重试次数配置也很离谱,重试次数`10`次而且`backoff`配置也很大,导致失败需要重试很久。
SpringAI deepseek timeout -
VS Code配置
```"editor.codeActionsOnSave":{"source.organizeImports":"explicit"},"files.exclude":{"**/.project":true,"**/.settings":true,"**/.classpath":true,},"search.exclude":{"**/.git":true,"**/dist":true,"**/build":true,"**/target":true,"**/node_modules":true,},"files.watcherExclude":{"**/.git/**":true,"**/dist/**":true,"**/build/**":true,"**/target/**":true,"**/node_modules/**":true,},"java.project.resourceFilters":["\\.git","dist","build","node_modules",],"java.debug.settings.vmArgs":"-Dfile.encoding=UTF-8","java....
VS Code -
嵌入
```classSinusoidalPositionEmbedding(nn.Module):def__init__(self,dim:int,max_len:int=512):super().__init__()pe=torch.zeros(max_len,dim,dtype=torch.float)position=torch.arange(0,max_len,dtype=torch.float).unsqueeze(1)div_term=torch.exp(torch.arange(0,dim,2,dtype=torch.float)*(-math.log(10000.0)/dim))pe[:,0::2]=torch.sin(position*div_term)pe[:,1::2]=torch.cos(position*div_term)self.register_buffer("pe",pe.unsqueeze(0),persistent=False)defforward(self,input:torch.Tensor)->torch.Tensor:returninput+self.pe[:,:...
embedding -
多模态融合思考
音频没有太多技巧要么直接使用原始波,要么直接`STFT`。视频其实可以拆分成为时间和空间,取一个颜色空间作为时间信息,然后最后定格图片作为空间信息,感觉有搞头。
多模态 AI -
linux音频
```#设置音量amixer-c1scontrolsamixer-c1sset'Speaker'100%#播放音频aplay-Dhw:1,0/data/boot.wav```
linux