Methodology to MAV Auto-Pollination
(XJTLU,Jiawen Li,student ID:2039079)

Preprocessing of image data

The micro air vehicles(MAV) could precisely ‘feel’ the surrounding environment, but they also need to precept the situation to judge whether the flower needs to pollinate. In several articles, for formatting real-time data, they usually clip the image into a single square from the circle.
Figure 1. The visual field of MAVS & partial design

This preprocessing approach would eliminate some information on the edge(roughly 21.5%), triggering relatively inaccurate results. The easiest way to solve this issue is image padding. However, it might influence prediction distribution—nevertheless, the single zero-padding leads to space bias, which is not solvable to single normalization. The model needs another generative model to simulate corner data for padding. The best choice is Generative Adversarial Network(GAN). The training data would come from a big image combined with an enormous drone camera image.

However, the input still has some data missing. When the vehicle scans the overall flower’s area like a convolution kernel, the engineer has to realize those images could be regarded as continuous sequence data. Neither Residual Network(ResNet) or Gated Recurrent Unit(GRU) could handle this sort of input, not even the Temporal convolutional network(TCN). TCN perform well on dealing continuous sequence of images.But TCN need a long time for training[1] and then could not respond to the outer environment in time, which creates a time delay. Imagine when drones once detected the flower needed to pollinate, but the MAV had already passed over.

Figure 2. The training time of numerous classical models[2]

Principal Component Analysis (PCA) is necessary for simplified data to reduce the responding delay. PCA could simplify primary data with nominal size. In mathematics, it squeezes data to a single place(line, plane or multidimensional space) in a separate direction(it can persevere the original data distribution). By the way, the main body of the model would be MLP. After reducing the data dimension, the data complexity would rapidly decrease within major information.

Design the model

Please turn to the net structure for this application. The input data’s shape that we had already talked about is N1+1(N1from PCA, 1 for another embedding feature). This feature is the cosine similarity between the first two times action. (if the model is trained in 1st or second epoch, this feature would be zero). It illustrates the similarity of current behaviour to the one that MAV was used to have. Additionally, it is necessary to simplify the sequence model to the MLP.

As everyone knows, there are still have many other more complex, delicate ways to calculate similarity. The main reason for choosing cosine similarity is the simple form of the relation. Only could a concise relation learned by MLP easily.Furthermore, the output data should be designed as follows:
Output=

The sigma is a variable for judging whether the MAV need to pollinate or not(0 or 1), and mu to represents the velocity in each dimension, which are also in range 0 to 1(because 1 of any variable means the maximum speed that vehicle could reach, just for normalization of result). Therefore, the total output is a vector create for real-time action.

Next step is to define the number of unit in the net, a large network could caused a long training time or over-fitting, and a small network lack of presentational capability to solve the question(that bring under-fitting). There has a common formulas for define the size and the number of hidden layer.

Ni is the number of input
No is the number of output
Ns is the number of sample
α is a constant in range 2-10

In this application, we can get the result is S/( (N+5)*α). If we have 10000 samples and assume that each sample of the image would be a squeeze to 64 features, there should have at least 15 hidden units. Although this equation is only suited for a 1-hidden layer, it could be improved for multi-layers situations. Treat the previous hidden layer’s number as input of the current one, and then calculate it within the formula. Why is this empirical formula still work? Analogy to transfer learning, the model could reuse its first layers of weight to retrain and get new results for a new question. It is like treating those layers of the result as inputs when freezing those weights. 3 layers could represent time and more complex information, this network would composed by 5 layers. In the end, the loss function would adopt the log loss rather than the mean square error.

Construct the model

We had already discussed, the model need a sequence of continuous image on flower field. Due to the shortage of this sort of dataset on website, I could only make program in advance. The data processioning part would be complete on python (it is convenience to utilize PCA). Moreover, I used newff() and those tools to construct a fundamental network.This graph illustrate the fitting situation of the stimulation.
.

Figure 3. The fitting situation for the action vector
As we can see, the model does not perform well in that way. One of the possibilities is that the samples haven is enough information to support the network. The data that we get could only classify a flower need to be pollinated or not. It cannot decide the 3-d action on just several images. From another perspective, making another algorithm for the searching path is needless.If the data is not enough, the drone could scan the whole field and pollinate once the flower needs it that is more practical compared to use our model.

Get earlier local optimum

In major time, the environment is not as simple as we think. Several ‘abnormal’ data will cause the model shifting, thus the final result is not even the relatively best. (so we could not just waiting for the final result) The model need to set a scale for scanning whether the maximum of reward_meanloss (rewardloss) in the range is enhanced, and get the earlier result.(For instance, the figure below is the reward of 600 steps, hence the step we train next time would adjacent about 400~500 steps, the graph of loss is 10 steps per unit)


Figure 4. The loss with training steps(10 steps per unit)

Changing the learning rate and hidden layers is a common approach if the model still needs a further extension. However, be careful about the value. A tiny learning rate could induce decreasing expression of the net. Moreover, an oversize hidden layer would bring under-fitting. The bottom of the baseline model is hard to compile, so endless try at the real samples is necessary.

All in all, the model has a non-negligible disadvantage. This algorithm cannot recognize what the best direction to pollinate is. Additionally, MAV can only realize pollinate requirements based on the blossom whereas the database. When the model encounters a flower that does not bloom has a need, it creates an error.
The entire process have shown below:


Figure 5. The overall structure of MAV model design

In the next part, we will evaluate our system to a more specific degree via some criteria, such as the frequency of fully pollinating one flower.

Reference List
[1]M. Carreras, G. Deriu, L. Raffo, L. Benini, and P. Meloni, “Optimizing Temporal Convolutional Network Inference on FPGA-Based Accelerators,” IEEE Journal on Emerging and Selected Topics in Circuits and Systems, vol. 10, no. 3, pp. 348–361, Sep. 2020, doi: 10.1109/jetcas.2020.3014503.

[2]P. Lara-Bentez,Distribution of training and inference time results for all architectures.[Research Gate]. Available: https://www.researchgate.net/figure/Distribution-of-training-and-inference-time-results-for-all-architectures_fig4_347133536

(XJTLU)Methodology to MAV Auto-Polination相关推荐

  1. 深度学习论文: Multi-modal Sensor Fusion for Auto Driving Perception: A Survey

    深度学习论文: Multi-modal Sensor Fusion for Auto Driving Perception: A Survey Multi-modal Sensor Fusion fo ...

  2. c++中的auto关键字

    auto的属性特征 #include <iostream> using namespace std;int main() {//1.auto 变量必须在定义时初始化,类似于constaut ...

  3. Auto ML自动特征工程

    Auto ML自动特征工程 特征工程是在做机器学习训练的过程中必不可少的环节,特征工程就是找出对模型结果有益的特征交叉关系,通常特征工程需要耗费算法工程师大量的精力去尝试.针对这样的场景,PAI推出智 ...

  4. Auto ML自动调参

    Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...

  5. 使用Auto TensorCore CodeGen优化Matmul

    使用Auto TensorCore CodeGen优化Matmul 本文将演示如何使用TVM Auto TensorCore CodeGen在Volta / Turing GPU上编写高性能matmu ...

  6. auto关键字详解 C++

    C++98 auto 早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期,这是多余的,因为就算不使用auto声明,变量依旧拥有自动的生命期: ...

  7. WPF中Auto与*的差别

    Auto 表示自己主动适应显示内容的宽度, 如自己主动适应文本的宽度,文本有多长,控件就显示多长. * 则表示按比例来分配宽度. <ColumnDefinition Width="3* ...

  8. hibernate.hbm2ddl.auto的value

    Hibernate 配置参数hibernate.hbm2ddl.auto Hibernate中的配置文件: <properties> <property name="hib ...

  9. C++拾趣——C++11的语法糖auto

    C++是一种强类型的语言,比如变量a,如果声明它是整型,则之后只能将它作为整型来用.这和其他弱类型的语言有很大的区别,比如python中,我们可以让a在第一行是个整型,第三行是一个字符串.(转载请指明 ...

最新文章

  1. luogu P4847 银河英雄传说V2(FHQ - 平衡树)
  2. 音频数据文件格式(PCM,WAV,MIDI)简记
  3. 从零开始写一个武侠冒险游戏-3-地图生成
  4. python【力扣LeetCode算法题库】121-买卖股票的最佳时机
  5. 谈谈 ES6 的 Promise 对象
  6. Py之PIL:不一样的PS之利用PIL库的img.paste方法实现合成刘若英导演电影《后来的我们》海报设计
  7. mybaits中resultMap实现多对多查询映射
  8. 【转】C++中的inline用法
  9. 【C++】C++中的迭代器
  10. ENVI软件App Store插件工具的下载、安装与使用方法
  11. 计算几何【套模板,推荐模板】 Separating Pebbles UVALive - 7461
  12. 基于深度学习的Depth and Ego-Motion Estimation
  13. 三星手机tf卡数据恢复怎么做
  14. React+Echarts 实时数据监控刷新
  15. 想改变Facebook? 先改变扎克伯格!
  16. bzoj1698 / P1606 [USACO07FEB]白银莲花池Lilypad Pond
  17. 解决知乎页面打印时下方文字被遮挡的问题
  18. 基于K-均值的app列表聚类分析
  19. CRTD--有关于intel芯片组和BCM4360网卡适配银河麒麟V10系统(适用于macbook)
  20. 百度对“十进制网络”的官方态度

热门文章

  1. 游戏盾的原理和功能是什么?
  2. 微信小老虎图标怎么弄?微信小老虎状态设置方法详细步骤
  3. 程序员之间的战争,某宁测试和开发干架,鼠标线勒脖子都来了!
  4. 计算机英语 ribbon,ribbon是什么意思_ribbon的翻译_音标_读音_用法_例句_爱词霸在线词典...
  5. kubernetes集群安装
  6. Cocos Creator 开发实战——篮球物理游戏
  7. 开发复杂业务系统,有哪些设计思路
  8. 计算机键盘锁不了怎么办,电脑键盘被锁,打字打不出来怎么处理,
  9. dpdk-pktgen进行发包,dpdk-testpmd和dpdk-pdump进行收包并保存为pcap文件
  10. 截至2012年5月23日19点58分支持CUDA的NVIDIA的GPU列表(Tesla,Quadro,NVS)