<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>2021 on Simplestory</title><link>https://simplestory.github.io/en/categories/2021/</link><description>Recent content in 2021 on Simplestory</description><generator>Hugo</generator><language>en-us</language><copyright>Simplestory</copyright><lastBuildDate>Sat, 07 Aug 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://simplestory.github.io/en/categories/2021/index.xml" rel="self" type="application/rss+xml"/><item><title>The PointNet Series</title><link>https://simplestory.github.io/en/posts/20210807_1c4ff5cd7d69cb58295eab75872ba2fd/</link><pubDate>Sat, 07 Aug 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210807_1c4ff5cd7d69cb58295eab75872ba2fd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;PointNet, PointNet++ and Frustum PointNet. The commonly used 3D point cloud object detection.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="pointnet"&gt;PointNet&lt;/h2&gt;
&lt;p&gt;PointNet applies deep learning directly to point cloud data. Point cloud data is a subset of the points in Euclidean space, and has three properties: disorder, the spatial relationship between points, and invariance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disorder. Point cloud data is a set and is insensitive to the order of the data, which requires the model to be invariant to different permutations of the data. There are several approaches. The first is to sort the point cloud by some rule, but for high-dimensional space it is very hard to find a stable sorting rule. Another is to treat it as a sequence and train it with an RNN, but this approach struggles to handle input elements of extremely large length (thousands to tens of thousands, as in a point cloud). Finally the authors use a symmetric function to aggregate the information of each point: $f(\lbrace x_1,x_2,\cdots,x_n\rbrace)\approx g(h(x_1),h(h(x_2),\cdots,h(x_n))$, where the left side of the equation is the goal and the right side is the designed symmetric function. From this we can see that each point in the point cloud is processed separately with $h$ and then passed into the symmetric function $g$. In the paper the authors choose $h$ to be an MLP and $g$ to be max pooling.&lt;/li&gt;
&lt;li&gt;The spatial relationship between points. An object usually consists of point clouds in a specific space, and there are spatial relationships between points; PointNet exploits these relationships by concatenating global features with local features.&lt;/li&gt;
&lt;li&gt;Invariance. The object represented by point cloud data should be invariant to some spatial transformations (rigid transformations). PointNet aligns the point cloud data before extracting features to guarantee invariance. The alignment is achieved by training a small network (T-Net) to obtain a transformation matrix and multiplying it with the input point cloud data. This operation can be seen as adjusting the spatial points; intuitively it rotates them into an orientation that is favorable for classification or segmentation (a rigid transformation). In the actual implementation a related loss function is also added to make the transformation matrix approximately orthogonal, so as to reduce the loss of point cloud information. (Regularization: $L_{reg}=\lVert I-AA^T\rVert_F^2$, that is, an L2 loss)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rough structure of PointNet is as follows:&lt;/p&gt;</description></item><item><title>Multi-View 3D Object Detection Network</title><link>https://simplestory.github.io/en/posts/20210806_8e5f2ccbcaba22801139e42b929ed820/</link><pubDate>Fri, 06 Aug 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210806_8e5f2ccbcaba22801139e42b929ed820/</guid><description>MV3D</description></item><item><title>SORT and DeepSORT</title><link>https://simplestory.github.io/en/posts/20210805_59094eb979620e0e11f92ffaa71cf228/</link><pubDate>Thu, 05 Aug 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210805_59094eb979620e0e11f92ffaa71cf228/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The multi-object tracking frameworks commonly used in industry at present.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="sort"&gt;SORT&lt;/h2&gt;
&lt;p&gt;This algorithm is based on an object detection network (Faster Rcnn) and makes use of the Kalman filter and the Hungarian algorithm (or the KM algorithm), greatly improving the speed of multi-object tracking. The rough pipeline is as follows:&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://simplestory-blog-img.oss-cn-guangzhou.aliyuncs.com/in_posts/20210805/SORT.png" title="SORT"&gt;&lt;/p&gt;
&lt;p&gt;The object detection algorithm obtains the object boxes Detections of the current frame, the Kalman filter obtains the Tracks of the current frame, and IOU matching is performed between the Detections and the Tracks. The final results fall into three categories:&lt;/p&gt;</description></item><item><title>Dynamic Head</title><link>https://simplestory.github.io/en/posts/20210804_697dd2d087a31ba4aab4ff575bde80be/</link><pubDate>Wed, 04 Aug 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210804_697dd2d087a31ba4aab4ff575bde80be/</guid><description>Dynamic network head</description></item><item><title>Dynamic Convolution and Dynamic ReLU</title><link>https://simplestory.github.io/en/posts/20210803_2d8c6e5a2f995c3808422afc8967c85e/</link><pubDate>Tue, 03 Aug 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210803_2d8c6e5a2f995c3808422afc8967c85e/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Make it dynamic.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="dynamic-convolution"&gt;Dynamic Convolution&lt;/h2&gt;
&lt;p&gt;Ordinary static convolution applies the same kernel to all input images, whereas dynamic convolution adapts to different images and processes them with more suitable convolution parameters, which increases the expressive power of the model without increasing network depth or width.&lt;/p&gt;
&lt;p&gt;Dynamic convolution dynamically aggregates multiple parallel convolution kernels according to attention. The attention dynamically adjusts the weight of each kernel according to the input, thereby producing an adaptive dynamic convolution. Because the attention is a function of the input, dynamic convolution is no longer a linear function. Superimposing kernels in a nonlinear way through attention gives stronger representational power. The rough structure is as follows:&lt;/p&gt;</description></item><item><title>CRF and Its Application in Segmentation</title><link>https://simplestory.github.io/en/posts/20210516_5df2f4dc23f490c5d68321fa51cabc59/</link><pubDate>Sun, 16 May 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210516_5df2f4dc23f490c5d68321fa51cabc59/</guid><description>Conditional random field</description></item><item><title>Basic Networks for Image Segmentation</title><link>https://simplestory.github.io/en/posts/20210430_b30ab79aff271e301dde9ca18c2e8085/</link><pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate><guid>https://simplestory.github.io/en/posts/20210430_b30ab79aff271e301dde9ca18c2e8085/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Image segmentation is pixel-level classification of an image, and mainly includes semantic segmentation and instance segmentation. Semantic segmentation only requires segmentation at the pixel level, while instance segmentation additionally requires separating different individuals on top of semantic segmentation. This post briefly introduces several basic semantic segmentation networks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="fcn"&gt;FCN&lt;/h3&gt;
&lt;p&gt;FCN (Full Convolution Network) is a classic image segmentation network whose main structure is an encoder-decoder, where the encoder extracts image feature information and the decoder interprets the extracted features. FCN replaces the fully connected layers in the network with convolution layers, so that 2D feature maps are obtained; these are then upsampled through deconvolution (transposed convolution), and finally a softmax layer produces the mask for each class. It can also handle input images of different sizes. The rough structure is shown below.&lt;/p&gt;</description></item></channel></rss>