Giriş
Tarım pek çok Hintli için bir işten daha fazlasıdır; bu bir yaşam biçimidir. Bu onların geçimlerini sağlamanın ve Hindistan ekonomisine büyük katkı sağlamanın yoludur. Kil, kum ve silt parçacıklarının ilgili oranlarda bulunduğu toprak tipinin belirlenmesi, uygun ürün seçimi ve yabancı ot gelişiminin belirlenmesi açısından önemlidir. Tarımda Derin Öğrenmenin potansiyelini keşfedin. Hindistan için toprak türlerinin ve yabani ot tespitinin önemini anlayın.
Derin öğrenme her alanda yardımcı olan yeni gelişen bir teknolojidir. Derin öğrenme, akıllı tarımda tarla izleme, tarla operasyonu, robot teknolojisi, toprak, su, iklim koşullarının tahmin edilmesi ve peyzaj düzeyinde arazi ve ürün türlerinin izlenmesi gibi ölçeklerde yaygın olarak uygulanmıştır. Toprağın fotoğrafını derin öğrenme mimarisine besleyebilir, özellikleri tespit etmeyi öğrenmesi için ona rehberlik edebilir ve ardından derin öğrenme mimarisini toprağı sınıflandırmak için kullanabiliriz.
Bu blogumuzda toprağın tarımdaki önemini tartışacağız. Toprağı makine öğrenmesi ve derin öğrenme modellerini kullanarak sınıflandıracağız.
Öğrenme hedefleri
- Tarımda toprağın ne kadar önemli olduğunu anlayacaksınız.
- Makine öğrenimi algoritmalarının toprak türlerini nasıl sınıflandırdığını öğreneceksiniz.
- Tarımda toprak türlerini sınıflandırmak için derin öğrenme modelini uygulayacaksınız.
- Tahminlerimizin doğruluğunu artırmak için çoklu yığınlı topluluk öğrenimi kavramını keşfedin.
Bu makale, Veri Bilimi Blogatonu.
İçindekiler
Tarımda Toprağın Rolü
Bitki ve hayvanlardan atılan organik maddeler, mineraller, gazlar, sıvılar ve diğer maddeler tarımın temelini oluşturan önemli toprağı oluşturur. Tarımın temeli bitkilerden ve hayvanlardan gelen ve toprak sistemini oluşturan gazlar, mineraller, organik maddeler ve diğer maddelerde yatmaktadır.
Hindistan'ın ekonomisi tamamen tarıma dayalıdır; Toprak mahsuller için önemlidir ve verimliliği nedeniyle istenmeyen yabani otların gelişmesine neden olur.
Nem ve sıcaklık, toprakta gözenek ve parçacıkların oluşumunu etkileyen, kök büyümesini, su sızmasını ve bitki çıkış hızını etkileyen fiziksel değişkenlerdir.
Ancak esas olarak toprakta kum ve kil parçacıkları bulunur. Yaygın olarak mevcut olan toprak parçacıkları arasında, arama sahasında kil bol miktarda bulunmaktadır. Kil parçacıklarının yüzeyde bulunması, sağlanan besin miktarının bol olmasından kaynaklanmaktadır. Turba ve balçık neredeyse hiç mevcut değil. Kil tipi toprağın araları geniştir ve su tutulur.
Veri kümesi
Özellik çıkarma, iyi bir derin öğrenme modeli oluşturmanın ana adımlarından biridir. Makine öğrenmesi algoritmalarının oluşturulması için gerekli olabilecek özelliklerin belirlenmesi önemlidir. kullanacağız Mahotalar Görüntülerin mekansal ve doku bilgilerine sahip olan Haralick özelliklerini çıkarmak için kütüphane.
Görüntüleri gri tonlamaya dönüştürmek ve nesne algılama için yararlı olan Gradyan Histogramı (HOG) özelliklerini çıkarmak için skimage kütüphanesini kullanacağız. Son olarak özelliklerin değerlerini bir dizide birleştireceğiz ve daha sonra bunları makine öğrenimi ve derin öğrenme algoritmalarında kullanacağız.
import mahotas as mh
from skimage import color, feature, io
import numpy as np
# Function to extract features from an image
def extract_features(image_path):
img = io.imread(image_path)
gray_img = color.rgb2gray(img) # Converting image to grayscale
# Converting the grayscale image to integer type
gray_img_int = (gray_img * 255).astype(np.uint8)
# Extracting Haralick features using mahotas
haralick_features = mh.features.haralick(gray_img_int).mean(axis=0)
# Extracting Histogram of Gradients (HOG) features
hog_features, _ = feature.hog(gray_img, visualize=True)
# Printing the first few elements of each feature array
print("Haralick Features:", haralick_features[:5])
print("HOG Features:", hog_features[:5])
# Concatenating the features into a single array
all_features = np.concatenate((haralick_features, hog_features))
return all_features
image_path = '/kaggle/input/soil-classification-dataset/Soil-Dataset/Yellow Soil/20.jpg'
features = extract_features(image_path)
print("Extracted Features:", features)
Toprak Sınıflandırmasında Makine Öğrenmesi Algoritmaları
Şimdi Kaggle'dan aldığımız toprak görüntülerini kullanarak bir makine öğrenimi modeli oluşturalım.
Öncelikle tüm kütüphaneleri içe aktaracağız ve ardından adında bir fonksiyon oluşturacağız. extract_features Görüntülerden özellikler çıkarmak için. Görüntüler daha sonra içe aktarılır ve işlenir, buna gri tonlamaya dönüştürme de dahildir ve ardından bu özellikleri elde ederiz. Daha sonra her görüntü için özellikler çıkarıldıktan sonra etiketler kullanılarak kodlanır. Etiket Kodlayıcı.
import os
import numpy as np
import mahotas as mh
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier, StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report
from skimage import color, feature, io
# Function to extract features from an image
def extract_features(image_path):
img = io.imread(image_path)
gray_img = color.rgb2gray(img) # Converting image to grayscale
gray_img_int = (gray_img * 255).astype(np.uint8)
haralick_features = mh.features.haralick(gray_img_int).mean(axis=0)
hog_features, _ = feature.hog(gray_img, visualize=True)
hog_features_flat = hog_features.flatten() # Flattening the HOG features
# Ensuring both sets of features have the same length
hog_features_flat = hog_features_flat[:haralick_features.shape[0]]
return np.concatenate((haralick_features, hog_features_flat))
data_dir = "/kaggle/input/soil-classification-dataset/Soil-Dataset"
image_paths = []
labels = []
class_indices = {'Black Soil': 0, 'Cinder Soil': 1, 'Laterite Soil': 2,
'Peat Soil': 3, 'Yellow Soil': 4}
for soil_class, class_index in class_indices.items():
class_dir = os.path.join(data_dir, soil_class)
class_images = [os.path.join(class_dir, image) for image in os.listdir(class_dir)]
image_paths.extend(class_images)
labels.extend([class_index] * len(class_images))
# Extracting features from images
X = [extract_features(image_path) for image_path in image_paths]
# Encoding labels
le = LabelEncoder()
y = le.fit_transform(labels)
# Splitting the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initializing and training a Random Forest Classifier
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
rf_classifier.fit(X_train, y_train)
# Making predictions
y_pred_rf = rf_classifier.predict(X_test)
# Evaluating the Random Forest model
accuracy_rf = accuracy_score(y_test, y_pred_rf)
report_rf = classification_report(y_test, y_pred_rf)
print("Random Forest Classifier:")
print("Accuracy:", accuracy_rf)
print("Classification Report:n", report_rf)
Derin Sinir Ağları
Hesaplama birimlerine ve nöron sayısına göre çalışır. Her nöron girdileri kabul eder ve çıktı sağlar. Doğruluğu artırmak ve daha iyi tahminler yapmak için kullanılırken, makine öğrenimi algoritmaları verilerin yorumlanmasına dayanır ve kararlar bunlara göre verilecektir.
Ayrıca oku: Derin Öğrenme ve Sinir Ağlarına Giriş Kılavuzu
Şimdi Keras’ın Sequential API’sini kullanarak tanımladığımız modeli derleyelim. Bu modelde bir Conv2D evrişim katmanı, MaxPooling2D, bir düzleştirme katmanı Düzleştirme ve yoğun katmanlar Yoğun bulunur.
Son olarak model kullanılarak derlenir. Adem optimize edici ve kategorik çapraz entropi kaybı.
import tensorflow as tf
from tensorflow.keras.preprocessing import image_dataset_from_directory
data_dir = "/kaggle/input/soil-classification-dataset/Soil-Dataset"
# Setting up data generators
batch_size = 32
image_size = (224, 224)
# Using image_dataset_from_directory to load and preprocess the images
train_dataset = image_dataset_from_directory(
data_dir,
labels='inferred',
label_mode='categorical',
validation_split=0.2,
subset='training',
seed=42,
image_size=image_size,
batch_size=batch_size,
)
validation_dataset = image_dataset_from_directory(
data_dir,
labels='inferred',
label_mode='categorical',
validation_split=0.2,
subset='validation',
seed=42,
image_size=image_size,
batch_size=batch_size,
)
# Displaying the class indices
print("Class indices:", train_dataset.class_names)
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(len(train_dataset.class_names), activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Training the model
epochs = 10
history = model.fit(train_dataset, epochs=epochs, validation_data=validation_dataset)
import numpy as np
from tensorflow.keras.preprocessing import image
# Function to load and preprocess an image for prediction
def load_and_preprocess_image(img_path):
img = image.load_img(img_path, target_size=image_size)
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array /= 255.0
return img_array
image_path = '/kaggle/input/soil-classification-dataset/Soil-Dataset/Peat Soil/13.jpg'
new_image = load_and_preprocess_image(image_path)
# Making predictions
predictions = model.predict(new_image)
predicted_class = np.argmax(predictions[0])
# Getting the class label based on the class indices
class_labels = {0: 'Black Soil', 1: 'Cinder Soil', 2: 'Laterite Soil',
3: 'Peat Soil', 4: 'Yellow Soil'}
predicted_label = class_labels[predicted_class]
# Displaying the prediction
print("Predicted Class:", predicted_class)
print("Predicted Label:", predicted_label)
Gördüğünüz gibi tahmin edilen sınıf 0 yani Kara Topraktır. Yani modelimiz toprak tipini doğru şekilde sınıflandırıyor.
Önerilen Çoklu Yığınlamalı Topluluk Öğrenme Modeli Mimarileri
The Yığınlama Sınıflandırıcısı baseClassifiers ile başlatılır ve lojistik regresyon meta sınıflandırıcı final_tahmincisi. Bu, nihai bir tahmin yapmak için baseClassifiers'ın çıktılarını birleştirir. Daha sonra eğitim ve tahminden sonra doğruluk hesaplanır.
base_classifiers = [
('rf', RandomForestClassifier(n_estimators=100, random_state=42)),
('knn', KNeighborsClassifier(n_neighbors=5)),
('svm', SVC(kernel='rbf', C=1.0, probability=True)),
('nb', GaussianNB())
]
# Initializing the stacking classifier with a logistic regression meta-classifier
stacking_classifier = StackingClassifier(estimators=base_classifiers,
final_estimator=LogisticRegression())
# Training the stacking classifier
stacking_classifier.fit(X_train, y_train)
# Making predictions with Stacking Classifier
y_pred_stacking = stacking_classifier.predict(X_test)
# Evaluating the Stacking Classifier model
accuracy_stacking = accuracy_score(y_test, y_pred_stacking)
report_stacking = classification_report(y_test, y_pred_stacking)
print("nStacking Classifier:")
print("Accuracy:", accuracy_stacking)
print("Classification Report:n", report_stacking)
Sonuç
Toprak, iyi bir ürün elde edilmesinde önemli bir unsurdur. Belirli bir mahsulü üretmek için hangi toprak tipinin gerekli olduğunu bilmek önemlidir. Bu nedenle toprak tipinin sınıflandırılması önem kazanmaktadır. Toprak tipini manuel olarak sınıflandırmak zaman alıcı bir iş olduğundan, bunları sınıflandırmak için derin öğrenme modellerini kullanmak kolaylaşır. Bu sorun ifadesini uygulamaya yönelik birçok makine öğrenme modeli ve derin öğrenme modeli vardır. En iyisinin seçilmesi, veri setinde bulunan verilerin kalitesine ve miktarına ve eldeki problem tanımına bağlıdır. En iyi algoritmayı seçmenin başka bir yolu da her birini değerlendirmektir. Bunu doğruluğu ölçerek, toprağı ne kadar doğru sınıflandırabildiklerini ölçerek yapabiliriz. Son olarak, en iyi modeli oluşturmak için birden fazla model kullanarak Çoklu İstifleme topluluk modelini uyguladık.
Önemli Noktalar
- Etkili ürün seçimi için toprağın tam olarak anlaşılması gerekir.
- Tarımda derin öğrenme, bitki hastalıklarını tahmin etmekten toprak türlerine ve su ihtiyaçlarına kadar güçlü bir araçtır.
- Toprak görüntülerinden özellik elde etmek için özellik çıkarımı yaptık.
- Bu blogda, toprağı sınıflandırmak için makine öğrenimi ve derin öğrenme modellerini ve daha iyi doğruluk için Çok yığınlı topluluk modelini inceledik.
Sıkça Sorulan Sorular
C. Uygun mahsul seçimi ve yabani ot gelişiminin belirlenmesi önemlidir.
A. Kum, kil, silt, turba ve balçık gibi özellikler dikkate alınır.
C. Derin öğrenme, modelin akıllı kararlar almasına olanak tanırken, geleneksel makine öğrenimi verileri yorumlayarak kararlar alır.
A. Çoklu İstifleme topluluğu modeli, toprak tipini sınıflandırmanın doğruluğunu arttırır.
Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.
İlgili bağlantılar
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://www.analyticsvidhya.com/blog/2024/01/deep-learning-in-agriculture-improving-soil-crop-yields/
- :vardır
- :dır-dir
- :olumsuzluk
- $UP
- 1
- 10
- 13
- 224
- 32
- 33
- 43
- 46
- 51
- 7
- 9
- a
- Kabul eder
- doğruluk
- karşısında
- Adem
- etkileyen
- Sonra
- tarım
- algoritma
- algoritmalar
- Türkiye
- veriyor
- ortasında
- miktar
- an
- analytics
- Analitik Vidhya
- ve
- hayvanlar
- Başka
- api
- uygulamalı
- mimari
- ARE
- Dizi
- göre
- AS
- At
- kullanılabilirliği
- mevcut
- merkezli
- BE
- olur
- olmuştur
- İYİ
- Daha iyi
- arasında
- Siyah
- Blog
- blogathon
- her ikisi de
- inşa etmek
- bina
- by
- hesaplanmış
- CAN
- Klinik
- seçme
- sınıf
- sınıflandırma
- sınıflandırmak
- İklim
- renk
- biçerdöverler
- nasıl
- derlenmiş
- tamamen
- hesaplama
- kavram
- koşullar
- kabul
- katkıda bulunmak
- dönüştürmek
- dönüştürme
- doğru
- ürün
- bitkiler
- veri
- kararlar
- derin
- derin öğrenme
- tanımlı
- yoğun
- bağlıdır
- belirlemek
- Bulma
- belirleme
- gelişme
- farklılık
- keşfetmek
- takdir
- tartışmak
- Hastalık
- sergileyen
- do
- yok
- yapılmış
- gereken
- her
- kolay
- ekonomisini
- Etkili
- eleman
- elemanları
- çıkma
- ortaya çıkan
- Gelişmekte olan teknoloji
- kodlanmış
- kodlama
- sağlanması
- devirler
- Eter (ETH)
- değerlendirilmesi
- Her
- keşif
- keşfedilmeyi
- çıkarmak
- çıkarma
- Özellikler(Hazırlık aşamasında)
- Özellikler
- az
- alan
- son
- Nihayet
- Ad
- İçin
- orman
- Airdrop Formu
- oluşum
- vakıf
- itibaren
- işlev
- jeneratörler
- almak
- alma
- Tercih Etmenizin
- var
- gradyanları
- Grayscale
- Büyüme
- rehberlik
- el
- Var
- faydalı
- bundan dolayı
- tarih
- Ne kadar
- HTTPS
- Kimlik
- belirlemek
- belirlenmesi
- görüntü
- görüntüleri
- son derece
- darbe
- uygulamak
- uygulanan
- ithalat
- önem
- önemli
- gelişmiş
- geliştirme
- in
- içerir
- Dahil olmak üzere
- Artırmak
- Artışlar
- Hindistan
- Endeksler
- bilgi
- girişler
- Akıllı
- içine
- tanıtıcı
- IT
- ONUN
- İş
- jpg
- sadece
- keras
- anahtar
- bilme
- etiket
- Etiketler
- arazi
- sonra
- tabaka
- katmanları
- İlanlar
- ÖĞRENİN
- öğrenme
- uzunluk
- kütüphaneler
- Kütüphane
- yalan
- hayat
- geçim
- yük
- kayıp
- makine
- makine öğrenme
- yapılmış
- Ana
- ağırlıklı olarak
- yapmak
- YAPAR
- Yapımı
- el ile
- çok
- Mesele
- Mayıs..
- anlamına geliyor
- ölçme
- medya
- Metrikleri
- mineraller
- model
- modelleri
- izleme
- Daha
- çok
- çoklu
- adlı
- gerekli
- ihtiyaçlar
- komşular
- sinirsel
- Nöronlar
- numara
- dizi
- beslenme
- nesne
- Nesne algılama
- of
- on
- ONE
- operasyon
- organik
- OS
- Diğer
- bizim
- çıktı
- çıkışlar
- Sahip olunan
- Bölüm
- yol
- Fotoğraf
- fiziksel
- bitki
- bitkiler
- Platon
- Plato Veri Zekası
- PlatoVeri
- potansiyel
- güçlü
- tahmin
- tahmin
- tahmin
- Tahminler
- mevcut
- baskı
- Sorun
- işlenmiş
- üretmek
- önerilen
- sağlar
- yayınlanan
- yalnızca
- kalite
- rasgele
- Rbf
- gerileme
- güvenmek
- rapor
- bu
- muhafaza
- dönüş
- robotik
- Rol
- kök
- aynı
- SAND
- terazi
- Bilim
- görmek
- seçim
- Setleri
- ayar
- meli
- gösterilen
- beri
- tek
- yer
- akıllı
- So
- toprak
- uzaysal
- özel
- hız
- istif
- Açıklama
- Basamaklar
- uygun
- Verilen
- destek
- yüzey
- svc
- sistem
- Görev
- Teknoloji
- tensorflow
- Test yapmak
- göre
- o
- The
- ve bazı Asya
- Onları
- sonra
- Orada.
- Bunlar
- onlar
- Re-Tweet
- İçinden
- zaman tükeniyor
- için
- araç
- konu
- geleneksel
- Eğitim
- tip
- türleri
- anlamak
- birimleri
- istenmeyen
- kullanım
- Kullanılmış
- kullanma
- onaylama
- Değerler
- oldu
- Su
- Yol..
- we
- webp
- ot
- Ne
- Nedir
- hangi
- süre
- neden
- irade
- ile
- çalışır
- X
- Sarı
- verimli
- verim
- sen
- zefirnet