家养服务器实现app自由
主打一个虽然我公司写的东西没人爱买,但我也不用花钱买其它公司的软件了
家用服务器用了几个月,想到什么app就写一个,一直在填坑。这里写大概思路, 具体详细的去看项目
总体优势
- app之间互通,不存在接口握手失败或者版本漂移。
- 服务器日志自己控制,无隐私问题,方便加入机器学习模型作为后端支持。
- 添加硬件的时候,服务器端不会拖后腿,边做边改。拖后腿的是我的0基础硬 件水平,ai干不了的我基本歇菜。
展示版
小长条crowpanel:使用率意外的高。小朋友每次看到它刷新都会充满惊喜。题 目放在习题里她们不爱做,放这上面时不时来一题她们就愿意做了。
kindle:越狱后并没有成功的全自动化,所以需要手动更新,就没那么香。但是 勉强能用来做需要手动更新的灰度家庭相册。
简单涂鸦画板
导入草稿,选择已有的画材色号来迅速上色看整体效果,定了颜色之后出个色号 指示,就方便在纸上上色了。画板app可以很方便的替换色号来比较效果图,避 免在纸上涂完才发现翻车。
半奏
配合架子鼓使用。有几个方便的功能 - 录音。录了作为伴奏来个人使用。 - 导入歌曲,加入基本处理比如去头去尾、生成无鼓伴奏。 - 节拍器,基本配置都可以改 - (待办)分析录音有没有打在节奏上,左右手是否平衡。这个需要鼓通过midi 练上电脑,由电脑端进行录音。 - 练习记录
家庭相册
本地机器学习模型支持+个人快捷键+按自己的浏览习惯写UI。解决了很多我自己 的痛点。
- 有很多相似的照片,每张都舍不得删,但又不希望在电子相册里聚堆引起审 美疲劳。所以使用了照片栈,相似的照片作为一个栈来进行排名,等 到显示的时候再随机选其中一张。生成机器学习训练样本的时候,挑其中一 张就行了,所以计算feature只用算一张的。
- 自己训练推荐模型,可以加入一些特殊模型,比如:推荐揭丑照片,相似构图, 相似配色,相似物品组合,适合作为画画素材,等等。有些图片作为照片很 差,但是正好包含一个画画需要参考的素材,就可以选择在相册里隐藏,同 时发送给管理素材的app(也在本地运行)。
- 照片不直接改,所有的修改都是滤镜套壳,滤镜写在数据库里,前端渲染, 可以存多个滤镜配置,根据不同场景使用,比如灰度设备需要的滤镜跟彩色 的不一样,不同设备的裁剪要求不一样。每个版本单独存储,随时切换。这 些滤镜完全是透明的,所以换一个app可以方便的导出。限制是:我就没找到 很好的滤镜,只能说讲究用吧,边做边优化。
- 猜了一下苹果的memory用的是什么模型,写了个自以为类似的。果家模型没 有公开,但是公开过一些图片处理的思路。结合它给我的推荐,我猜它兼顾 了时间地点人物,照片质量,审美疲劳,去重复,事件记录指数。单机算力 肯定不可能达到同等效果,但按照这个思路可以试试。我自己可以提供不同 的训练标签,可以用监督学习来提高效率,反正本地模型没有隐私的问题。 其中的难点是什么定义了事件价值,记忆价值。慢慢摸索着做吧,这里面 feature engineering应该是个大头,本地样本的优势是,正标签100%准确, 我打上有价值的标签当然就是有价值。替代标签质量也不差,比如发送到设 备之类的事件,我可以主导怎么写服务器记录。
- 可以给其它设备提供接口,每个设备有自己的推荐模型、图像处理模块,最 后得到专属这个设备的图。比如kindle收到的就是16灰阶版本。由于kindle 那边的接口也是本地app自己写,所以不会有两边对不上的问题。
- 自动标记低质量图片,方便批量删除。这个做得很差,现有的模型没找到, 自己训练的样本不好维护,因为负标记=删掉的照片,而删除的照片我又不想 留着,如果专门为了训练而留着,会搞乱图片索引系统。
- 自定义快捷键
- 可按删除时间过滤的回收站恢复功能,手滑删掉的可以立即恢复。也可以一 键清空。
做到后面重心偏到了推广搜模型开发、管理上面,感觉做上头了开始高射炮打蚊子。
代码
对我来说比较好用的一个模式是,项目的前半段重点先写个能用的,零部件往上 堆,拼高达模式。后半段则边用边改,雕刻模式。用到一半去看看到底写了啥, 再决定要不要砍掉重写。重写其实问题不大,测试,边界定义好就行。自用的非 生产级别的代码随便揉,经得住砍掉重堆。
做大了之后ai会错很多,如果让它选重新写个干净的vs屎上雕花,它几乎一定会 选择后者。从来不会说,这部分做大了撑不住,得重新考虑一下架构。但是让它 重新写消耗并不大,它只是不懂堆屎山的沉没成本。总体下来,大约50%需要质 疑它的决定。比如如果一个文件修修改该往1000行去了,它只会继续堆,不会说 这个太长了应该更模块化。对它来说反正都是只读其中一小段,区别可能不大, 但是这样写出来的人就很难去接管了。