Derin öğrenmenin son yıllardaki hızlı yükselişi ile birlikte birçok endüstriyel problem derin öğrenme ile yapılabilir hale gelmiştir. Endüstrinin her alanında olduğu gibi tarım alanında da bitki hastalığı sınıflandırma, meyve sınıflandırma, tohum sınıflandırma ve tohum ayıklama gibi endüstriyel problemler bulunmaktadır. Bu tez çalışmasında tohum sınıflandırma ve tohum ayıklama problemi evrişimli sinir ağ yapıları ile gerçeklenmiştir. Tohum sınıflandırma işleminde veri seti olarak sarı buğday, pirinç, kırmızı mercimek ve yeşil mercimek tohumları kullanılmış ve sınıflandırma işlemi bu tohumlar arasında yapılmıştır. Tohum ayıklama problemi için gerekli veri seti kara buğday tohumları ve bu tohumların içinden çıkan istenmeyen nesnelerden üretilmiştir. Tüm bu veri setlerini üretebilmek için probleme özgü endüstriyel bir deney düzeneği kurulmuştur. Yine önerilen algoritma sayesinde farklı türlerde (doğrudan ölçekleme ve şablona uygun şekilde ölçekleme) ve boyutlarda veri setlerinin otomatik bir şekilde oluşturulması sağlanmıştır. Bu tez çalışmasında tohum ayıklama problemi için 227x227, 157x157, 77x77 ve 37x37 boyutlarında ve farklı iki türde veri seti (doğrudan ölçekleme ve şablona uygun şekilde ölçekleme) olmak üzere toplamda sekiz farklı veri seti oluşturulmuştur. Oluşturulan bu sınıflandırma ve ayıklama veri setleri literatürdeki AlexNet ve MobileNet-V2 ağ yapıları ile test edilmiş ve en yüksek test doğruluğu tohum sınıflandırma için %100 (AlexNet ile) tohum ayıklama için %99 (MobileNet-V2 ile) olarak hesaplanmıştır.
Tohum ayıklama işlemi endüstride yüksek hızlarda görüntü işleme yöntemleri ile yapılmaktadır. Ayıklama işleminin derin öğrenme ile yüksek hızlarda yapılabilmesi için iki evrişim katmanından oluşan (ilk evrişim katmanındaki filtre sayısı 64, ikinci evrişim katmanındaki filtre sayısı 96), işlem yükü düşük özel bir evrişimli sinir ağı yapısı (giriş data boyutu 227x227) önerilmiştir. Önerilen bu özel evrişimli sinir ağı yapısı 227x227 boyutundaki veri seti ile test edildikten sonra en yüksek test doğruluğu %99 olarak hesaplanmıştır. Doğruluktan ödün vermeden (minimum %98 doğruluk) önerilen bu ağ yapısındaki işlem yükünü daha da azaltmak için iki aşamalı ölçekle ve budama yöntemi önerilmiştir. Önerilen yöntemin özel evrişimli sinir ağı üzerinde denenmesi sonucu giriş data boyutu 77x77, birinci evrişim katmanındaki filtre sayısı 16 ve ikinci evrişim katmanındaki filtre sayısı 24 olan özel ağ yapısı en optimum ağ yapısı olarak hesaplanmıştır. Bu optimum ağ yapısına ait toplam kayan nokta işlem sayısının (FLOPs), ilk önerilen ağ yapısına (giriş veri boyutu 227x227) oranla 46.072.682 / 863.530 = 53,35 kat daha küçük olduğu yine MobileNet-V2 ağ yapısına göre 1.690 kat daha küçük olduğu hesaplanmıştır.
Önerilen ağ yapıları üzerindeki optimizasyon işlemleri genetik algoritma ile de denenmiş ve genetik algoritma ile elde optimum (minimum FLOPs) ağ yapısının FLOPs değerinin, özel ağ yapısına (giriş data boyutu 227x227) oranla 46.072.682/715.453 = 64,39 kat daha küçük olduğu hesaplanmıştır. Genetik algoritma ve önerilen ölçekle ve budama yöntemi ile yapılan optimizasyon sonuçları detaylı bir şekilde karşılaştırılmış; tüm sonuçlar gerçek zamanlı sistemler ve gömülü sistemler açısından detaylı bir şekilde tartışılmıştır. Ölçekle ve budama yöntemi ile yapılan optimizasyonda elde edilen özel ağ yapısının (giriş data boyutu 77x77) hafızada kapladığı alan 0,96MB olarak hesaplanmıştır. Bu değer MobileNet-V2 ağ yapısına göre 12,9MB/0,96MB = 13,43 kat ve AlexNet yapısına göre 236MB/0,96MB = 245,83 kat daha küçüktür. Aynı oranlar toplam parametre sayısı için de geçerli olup; bu açıdan bakıldığında optimize edilmiş ağ yapılarının, literatürde yaygın olarak bilinen mimarilere kıyasla daha donanım dostu olduğu söylenebilir.
Sonuç olarak probleme-özel evrişimli sinir ağ modellerinin önerilmesi ve optimize edilmesi alanında literatürde geliştirilmeye açık konuların olduğu gösterilmiştir. Bu çalışmada elde edilen sonuçlar göstermektedir ki yüksek hız gerektiren uygulamalarda literatürdeki bilinen ağ yapılarını kullanmak yerine probleme özgü ağ yapılarının önerilmesi işlem yükünü azaltmakta ve sistemi hızlandırmaktadır.
|
Through the rapid rise of deep learning in recent years, many industrial problems have become feasible by the use of deep learning. As in every field of industry, there are industrial problems including plant disease classification, fruit classification, seed classification and seed sorting in agriculture as well. In this thesis, the seed classification and seed sorting problems has been implemented with convolutional neural network structures. For the process of seed classification, yellow wheat, rice, red lentil and green lentil seeds were used as the data set and the classification process was executed on these seeds. The data set required for the seed sorting problem has been obtained from buckwheat seeds and intruding objects that come out of these seeds. In order to make this realization, an industrial experimental setup which is specific to the problem has been established. Again, the proposed algorithm, allowed different types of datasets (direct scaling and scaling according to the template) and data sizes to be created automatically. In this thesis, for seed sorting problem a total of eight different data sets were generated, with two different data types (scaling directly and scaling according to the template) and four different image sizes (227x227, 157x157, 77x77 and 37x37). All of these classification and sorting data sets were tested with AlexNet and MobileNet-V2 network structures in the literature and the highest test accuracy was calculated as %100 (with AlexNet) for seed classification and %99 (with MobileNet-V2) for seed sorting.
In industry, seed sorting can be executed by image processing methods at high speeds. In order to perform seed sorting applications with deep learning at high speeds a special convolutional neural network structure (input data size 227x227) consisting of two convolution layers (in first and second convolution layers, there are 64 filters and 96 filters respectively) with a low processing load is proposed. After testing this custom convolutional neural network structure with 227x227 data set, the highest test accuracy was calculated as 99%. In order to further reduce the processing load on this proposed custom network structure without sacrificing accuracy (minimum 98% accuracy), a two-step scale and prune method have been proposed. As a result after testing this proposed method on custom convolutional neural network providing that input data size is 77x77, number of filters in the first and the second convolution layers have been calculated as 16 and 24 respectively for a optimal network structure. It is also calculated that the total number of floating-point operations (FLOPs) of this network structure is 46,072,682 / 863,530 = 53.35 times smaller than the initially proposed custom network structure (input data size 227x227) and 1,690 times smaller than the MobileNet-V2 network structure.
Optimization processes on the proposed network structures were also tested with the genetic algorithm, and it was calculated that the FLOPs value of the optimum (minimum FLOPs) network structure obtained with the genetic algorithm is 46,072,682 / 715,453 = 64.39 times smaller than the custom network structure (input data size 227x227). Optimization results with the genetic algorithm and the proposed scaling and pruning method were compared in details and all results were discussed in detail in terms of real time systems and embedded systems. The required memory for the custom network structure (input data size 77x77) obtained from scale and prune method was calculated as 0.96MB. This value is 12.9MB / 0.96MB = 13.43 times smaller than the MobileNet-V2 network structure and 236MB / 0.96MB = 245.83 times smaller than the AlexNet structure. The same rates are valid for the total number of parameters; from this point of view, it can be said that optimized network structures are more hardware friendly compare to literally known architectures.
As a result, it has been shown that in the literature there are issues that are likely be improved in the field of proposing and optimizing problem-specific custom convolutional neural network structures. The results obtained in this study show that problem-specific custom network structures proposed for high speed applications instead of using the known network structures in the literature reduces the processing load and speeds up the system. |