zAnalysis是基于Pascal语言编写的大型统计学开源库,它不依赖于任何三方库,并且可以跨平台和并行化计算
zAnalysis不限制你的任何商业用途和拷贝,包括二次开发
zAI是机器视觉的人工智能方向项目 https://github.com/PassByYou888/zAI
zVision偏向纯粹的机器视觉 https://github.com/PassByYou888/zVision
zAnalysis偏向数据统计 https://github.com/PassByYou888/zAnalysis
zChinese是正在完善中的NLP项目 https://github.com/PassByYou888/zChinese
- Delphi及IDE要求:Delphi Rad studio XE10.2.1 or Last
- FPC编译器支持:FPC3.0.4 or last,可参看本项目随附的IOT入手指南将FPC升级至github最新的版本
- CodeTyphon 6.0 or last(尽量使用Online更新到最新的Cross工具链 相关库)
- Windows: delphi-CrossSocket(C/S OK), delphi-DIOCP(C/S OK), delphi-ICS(C/S OK), delphi-Indy(C/S OK),delphi fpc Synapse(C/S OK)
- Android:Indy(C/S OK), CrossSocket(Only Client)
- IOS Device: Indy(C/S OK), CrossSocket(Only Client)
- IOS Simulaor: n/a
- OSX: Indy(C/S OK),ICS(未测试), CrossSocket(C/S OK)
- Ubuntu16.04 x64 server: Indy(C/S OK), CrossSocket(C/S OK)
- Ubuntu18.04 x86 x64 Desktop:only fpc3.0.4 Synapse(C/S OK)
- Ubuntu18.04 x86 x64 Server:only fpc3.0.4 Synapse(C/S OK)
- Ubuntu18.04 arm32 arm neon Server:only fpc3.0.4 Synapse(C/S OK)
- Ubuntu18.04 arm32 arm neon desktop:only fpc3.0.4 compile ok,no test on run.
- Ubuntu16.04 Mate arm32 desktop:only fpc3.0.4 compile ok, test passed
- Raspberry Pi 3 Debian linux armv7 desktop,only fpc 3.0.4,test passed.
- wince(arm eabi hard flaot),windows 10 IOT,only fpc 3.3.1,test passed.
- MIPS(fpc-little endian), soft float, test pass on QEMU
- intel X86(fpc-x86), soft float
- intel X86(delphi fpc), hard float,80386,PENTIUM,PENTIUM2,PENTIUM3,PENTIUM4,PENTIUMM,COREI,COREAVX,COREAVX2
- intel X64(fpc-x86_64), soft float
- intel X64(delphi fpc), hard float,ATHLON64,COREI,COREAVX,COREAVX2
- ARM(fpc-arm32-eabi,soft float):ARMV3,ARMV4,ARMV4T,ARMV5,ARMV5T,ARMV5TE,ARMV5TEJ
- ARM(fpc-arm32-eabi,hard float):ARMV6,ARMV6K,ARMV6T2,ARMV6Z,ARMV6M,ARMV7,ARMV7A,ARMV7R,ARMV7M,ARMV7EM
- ARM(fpc-arm64-eabi,hard float):ARMV8,aarch64
关于IoT平台的开发测试机:本文提及到的IOT开发板都可以通过网购获取,自己动手diy Linux需要一定的耐心,懒人建议使用CodeTyphon,或则直接apt安装内置的fpc Lazarus
暂无指标统计程序
神经网络支持 Test Pass
- 动态KD空间树支持(纯数组的非链表计算内核,支持并行化查找,内置临近K聚类,只支持双浮点)
- 高速静态KD空间树支持(纯数组的非链表计算内核,支持并行化查找,内置临近K聚类,支持8种整型和浮点变量类型)
- 临近k聚类支持
- LBFGS-大规模拟牛顿法(支持并行化,支持神经网络集成)
- 非线性最小二乘法(牛顿法进阶版本,支持并行化,支持神经网络集成)
- 随机森林决策树学习
- 评定模型的逻辑回归
- 蒙特卡罗抽样学习
- 图片采样:主成分采样,线性判定采样,灰度反走样,矩阵采样
- 神经网络多层感知器
- 卷积计算二次开发支持
- 分类器支持
- 因变量支持
正太分布检测 Test Pass
- F检测
- 二项式化分布检测
- 方差分布检测
- t分布检测
- 皮尔逊分布检测
- 斯皮尔曼分布检测
正太分布计算 Test Pass
- 正太分布函数
- 泊松分布
- F分布
- 二项式化分布支持计算
- 方差分布计算
- t分布计算
- 皮尔逊分布
- 斯皮尔曼分布
- Jarque-Bera检验计算
- 曼-惠特尼U检验计算
- 威尔科克森符号秩检验计算
基础视觉库 Test Pass
- sift高斯金字塔及sift特征匹配支持
- HOG梯度方向直方图及特征匹配
- 图片相似性相关:基于方差图采样(分别支持PCA主成分分析与LDA线性判别分析,这里的方差图采样不是梯度方差图)
- 图片相似性相关:基于皮尔逊,斯皮尔曼,k空间的相似性查找
- 最小走样化缩放技术(高斯平滑缩放,灰度缩放,快速平滑缩放)
- 光栅库不需要任何外部底层api支持,天然工作于系统内存中,并且平台无关性
- 光栅库内核支持并行化框架
- 光栅库支持JpegLS无损压缩(灰度,RGB,RGBA)
- 光栅库支持BRRC梯度压缩,支持哈夫曼压缩
- 光栅库支持顶点渲染
- 光栅库支持平台无关性的字体系统
- 光栅库支持面向H264及YUV2MPEG的视频打包
- 光栅库支持AGG高保真像素系统
数据库集成 Test Pass
- 内置ZDB本地数据库,ZDB可以作为大型数据库的伴侣数据库,为项目提供统计学支持
- 内置ZDB内存数据库支持
- ZDB可以轻松改造成网络数据库后台,并且能基于zServer项目轻松搭建机器学习的后台框架
其它支持
- 100%兼容linux桌面开发(fpc方向)
- ffmpeg待支持(平台无关性)
- 小型渲染引擎支持(平台无关性,支持并行化渲染,支持多线程渲染,支持所有运行平台)
- zSound音频库支持(平台无关性,支持播放音乐,音效,混音等等功能)
- 提供快速存储与恢复,可以动态读取,计算结果,无需训练
- 部分数据格式可以兼容MATLAB
- 机器学习状态可以导出成Json格式
- 以匿名函数方式训练(匿名函数只能工作于Delphi开发平台,不支持fpc)
- 安全浮点运算
- 安全动态数组处理
- 后台HPC服务器运算支持
- 工具集
- 完善使用文档和Demo
- 金融领域数据统计和分析的傻瓜支持
- 中小型企业级数据统计和分析的傻瓜支持
- 在游戏领域使用机器学习
- 自然语言处理的傻瓜支持(完善中,请参见我的开源项目 https://github.com/PassByYou888/zChinese)
- 加强视觉库的傻瓜支持(物体识别支持,人脸识别支持,请参考我的AI项目 https://zpascal.net)
- 对第三方大数据源支持(例如google提供的大数据源,请参考我的AI项目 https://zpascal.net)
- 可二次开发的模型化机器学习平台(请参考我的AI项目 https://zpascal.net)
- 分布式云服务器计算后台(https://github.com/PassByYou888/ZServer4D)
- 提供plot二维可视化图形api(光栅库已经加强,下一版本将提供模型呈现系统)
首次编译前,先运行Source\MemoryRaster_DefaultFont_build.bat,生成一次字体库
默认环境下,光栅引擎不支持中文,假如要使用中文,请用字体工具重新生成一次中文字体库(让它包含GBK字符集)
在Source中的子目录,均对开发或则运行平台有所要求
- source\DrawInterfaceInFMX,必须使用delphi fmx才能进行编译,运行平台支持ios,android,osx,windows,不支持linux
- source\SoundInterfaceInFMX,,必须使用delphi fmx才能进行编译,运行平台支持ios,android,osx,windows,不支持linux
- source\SoundInterfaceInBass,bass是平台无关性(fpc delphi 所有操作系统),详见zSound开源工程的部署方法 https://github.com/PassByYou888/zSound
在Source中的所有库均为平台无关性支持
- source中的所有*.pas均为平台关性,包括编译器fpc laz与delphi的支持,包括各个系统环境的支持,均能无关性
编译和开发基于Linux桌面的机器学习应用是fpc方向,需要搭建环境,请参看文档
- Linux桌面开发指南.pdf
在linux或则fpc编译器出来的应用启动缓慢的解决办法
- 解决办法1:自行外挂一个内存管理单元,比如TCMAlloc
- 解决办法2:使用字体工具,将字体库改小(不创建BGK字符集),重新生成字体库
- 解决办法3:将 https://github.com/PassByYou888/zRasterization/Source 中的所有文件copy到zAnalysis/Source中覆盖
在Windows中使用高速d2d绘图请参看文档
- 在苹果和安卓手机平台中让DrawEngine在FMX中加速工作.docx
使用问题请加在互助qq群490269542
请不要直接加作者,谢谢大家
by 2018-4