المُقدّمة
الزراعة هي أكثر من مجرد وظيفة للعديد من الهنود؛ انها طريقة للحياة. إنها الوسيلة التي يدعمون من خلالها سبل عيشهم ويساهمون بشكل كبير في اقتصاد الهند. يعد تحديد نوع التربة التي تحتوي على جزيئات الطين والرمل والطمي بالنسب الخاصة أمرًا مهمًا لاختيار المحصول المناسب وتحديد نمو الأعشاب الضارة. اكتشف إمكانات التعلم العميق في الزراعة. فهم أهمية أنواع التربة والكشف عن الأعشاب الضارة في الهند.
تعلم عميق هي تقنية ناشئة مفيدة في كل مجال. تم تطبيق التعلم العميق بشكل شائع في الزراعة الذكية عبر نطاقات المراقبة الميدانية، والعمليات الميدانية، والروبوتات، والتنبؤ بالتربة والمياه والظروف المناخية، ومراقبة أنواع الأراضي والمحاصيل على مستوى المناظر الطبيعية. يمكننا تغذية صورة التربة لبنية التعلم العميق، وتوجيهها لتعلم اكتشاف الميزات، ثم استخدام بنية التعلم العميق لتصنيف التربة.
في هذه المدونة سنناقش أهمية التربة في الزراعة. سنقوم بتصنيف التربة باستخدام نماذج التعلم الآلي والتعلم العميق.
أهداف التعلم
- سوف تفهم مدى أهمية التربة في الزراعة.
- سوف تتعلم كيف يمكن لخوارزميات التعلم الآلي تصنيف أنواع التربة.
- سوف تقوم بتنفيذ نموذج التعلم العميق في الزراعة لتصنيف أنواع التربة.
- استكشف مفهوم التعلم الجماعي متعدد التكديس لزيادة دقة تنبؤاتنا.
تم نشر هذه المقالة كجزء من مدونة علوم البيانات.
جدول المحتويات
دور التربة في الزراعة
تشكل المواد العضوية والمعادن والغازات والسوائل وغيرها من المواد التي تفرزها النباتات والحيوانات تربة مهمة وأساسًا للزراعة. يكمن أساس الزراعة في الغازات والمعادن والمواد العضوية وغيرها من المواد التي تأتي من النباتات والحيوانات، وتشكل نظام التربة.
يعتمد اقتصاد الهند بشكل كامل على الزراعة؛ تعتبر التربة مهمة للمحاصيل، وتؤدي إلى نمو الأعشاب الضارة غير المرغوب فيها بسبب خصوبتها.
تعتبر الرطوبة ودرجة الحرارة من المتغيرات الفيزيائية التي تؤثر على تكوين المسام والجسيمات في التربة، مما يؤثر على نمو الجذور، وترسيب المياه، وسرعة ظهور النبات.
ولكن في الأساس، تحتوي التربة على جزيئات من الرمل والطين. ووسط جزيئات التربة المتوفرة بشكل كبير، يتواجد الطين بكثرة في موقع الاستكشاف. يرجع توفر جزيئات الطين على السطح إلى التغذية الوفيرة المتوفرة. الخث والطميية بالكاد موجودة. والتربة الطينية واسعة بينهما حيث يتم الاحتفاظ بالمياه.
بيانات
يعد استخراج الميزات إحدى الخطوات الرئيسية لبناء نموذج جيد للتعلم العميق. من المهم تحديد الميزات التي قد تكون ضرورية لبناء خوارزميات التعلم الآلي. سوف نستخدم ماهوتاس مكتبة لاستخراج ميزات Haralick، التي تحتوي على معلومات مكانية وملمسية للصور.
سنستخدم مكتبة Skiimage لتحويل الصور إلى تدرج رمادي ولاستخراج ميزات الرسم البياني للتدرج (HOG) المفيدة لاكتشاف الكائنات. أخيرًا، سنقوم بتسلسل قيم الميزات في مصفوفة واستخدامها لاحقًا في التعلم الآلي وخوارزميات التعلم العميق.
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)
خوارزميات التعلم الآلي في تصنيف التربة
الآن، دعونا نبني نموذجًا للتعلم الآلي باستخدام صور التربة التي حصلنا عليها من Kaggle.
أولاً، سنقوم باستيراد كافة المكتبات ثم إنشاء وظيفة باسمها extract_features لاستخراج الميزات من الصور. يتم بعد ذلك استيراد الصور ومعالجتها، والتي تتضمن التحويل إلى التدرج الرمادي، ومن ثم نحصل على هذه الميزات. وبعد ذلك، بعد استخراج الميزات لكل صورة، يتم تشفير التسميات باستخدام التشفير التسمية.
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)
الشبكات العصبية العميقة
وهو يعمل على أساس الوحدات الحسابية وعدد الخلايا العصبية. تقبل كل خلية عصبية المدخلات وتوفر المخرجات. يتم استخدامه لزيادة الدقة وإجراء تنبؤات أفضل، بينما تعتمد خوارزميات التعلم الآلي على تفسير البيانات، وسيتم اتخاذ القرارات بناءً عليها.
اقرأ أيضا: دليل تمهيدي للتعلم العميق والشبكات العصبية
الآن، دعونا نبني النموذج المحدد باستخدام Sequential API من Keras. سيحتوي هذا النموذج على طبقة ملتوية Conv2D، وMaxPooling2D، وطبقة مسطحة، وطبقات كثيفة كثيفة.
وأخيرا، يتم تجميع النموذج باستخدام ادم محسن والخسارة عبر الانتروبيا القاطعة.
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)
كما ترون، الفئة المتوقعة هي 0، وهي التربة السوداء. لذلك، يقوم نموذجنا بتصنيف نوع التربة بشكل صحيح.
البنى المقترحة لنموذج التعلم الجماعي متعدد التكديس
• StackingClassifier تتم تهيئته باستخدام baseClassifiers و الانحدار اللوجستي المصنف الفوقية Final_estimator. يجمع هذا مخرجات المصنفات الأساسية لإجراء تنبؤ نهائي. ثم، بعد التدريب والتنبؤ، يتم حساب الدقة.
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)
وفي الختام
التربة عنصر مهم في إنتاج محصول جيد. من المهم معرفة نوع التربة الضروري لإنتاج هذا المحصول المحدد. لذلك، يصبح تصنيف نوع التربة أمرًا مهمًا. نظرًا لأن تصنيف نوع التربة يدويًا يعد مهمة تستغرق وقتًا طويلاً، وبالتالي يصبح استخدام نماذج التعلم العميق لتصنيفها أمرًا سهلاً. هناك العديد من نماذج التعلم الآلي ونماذج التعلم العميق لتنفيذ بيان المشكلة هذا. يعتمد اختيار الأفضل على جودة وكمية البيانات الموجودة في مجموعة البيانات وبيان المشكلة المطروحة. هناك طريقة أخرى لاختيار أفضل خوارزمية وهي تقييم كل منها. يمكننا القيام بذلك عن طريق قياس الدقة، ومدى قدرتهم على تصنيف التربة بشكل صحيح. أخيرًا، قمنا بتنفيذ نموذج مجموعة متعدد التراص، باستخدام نماذج متعددة لبناء أفضل نموذج.
الوجبات السريعة الرئيسية
- لاختيار المحاصيل بشكل فعال، ينبغي للمرء أن يفهم التربة تماما.
- يعد التعلم العميق في الزراعة أداة قوية، بدءًا من التنبؤ بأمراض النبات وحتى أنواع التربة واحتياجات المياه.
- لقد قمنا باستخراج الميزات للحصول على ميزات من صور التربة.
- في هذه المدونة، استكشفنا نماذج التعلم الآلي والتعلم العميق لتصنيف التربة ونموذج المجموعة المتعددة الطبقات لتحسين الدقة.
الأسئلة المتكررة
ج: من المهم اختيار المحاصيل المناسبة وتحديد نمو الأعشاب الضارة.
أ. يتم أخذ الميزات، بما في ذلك الرمل والطين والطمي والجفت والطميية، في الاعتبار.
ج: يسمح التعلم العميق للنموذج باتخاذ قرارات ذكية، بينما يتخذ التعلم الآلي التقليدي القرارات من خلال تفسير البيانات.
أ. يعمل نموذج مجموعة التراص المتعدد على زيادة دقة تصنيف نوع التربة.
الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.
مقالات ذات صلة
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://www.analyticsvidhya.com/blog/2024/01/deep-learning-in-agriculture-improving-soil-crop-yields/
- :لديها
- :يكون
- :ليس
- $ UP
- 1
- 10
- 13
- 224
- 32
- 33
- 43
- 46
- 51
- 7
- 9
- a
- يقبل
- دقة
- في
- ادم
- تؤثر
- بعد
- زراعة
- خوارزمية
- خوارزميات
- الكل
- يسمح
- وسط
- كمية
- an
- تحليلات
- تحليلات Vidhya
- و
- الحيوانات
- آخر
- API
- تطبيقي
- هندسة معمارية
- هي
- مجموعة
- البند
- AS
- At
- توفر
- متاح
- على أساس
- BE
- يصبح
- كان
- أفضل
- أفضل
- ما بين
- اسود
- المدونة
- blogathon
- على حد سواء
- نساعدك في بناء
- ابني
- by
- محسوب
- CAN
- اختار
- اختيار
- فئة
- تصنيف
- صنف
- مناخ
- اللون
- يجمع بين
- تأتي
- جمعت
- تماما
- حساب
- مفهوم
- الشروط
- نظرت
- المساهمة
- تحول
- التحول
- بشكل صحيح
- محصول
- المحاصيل
- البيانات
- القرارات
- عميق
- التعلم العميق
- تعريف
- كثيف
- يعتمد
- بكشف أو
- كشف
- تقرير
- التطوير التجاري
- اختلف
- اكتشف
- حرية التصرف
- بحث
- مرض
- عرض
- do
- هل
- فعل
- اثنان
- كل
- سهل
- اقتصاد
- الطُرق الفعّالة
- العنصر
- عناصر
- ظهور
- الناشئة
- التكنولوجيا الناشئة
- المشفرة
- ترميز
- ضمان
- عهود
- الأثير (ETH)
- تقييم
- كل
- استكشاف
- استكشاف
- استخراج
- استخلاص
- الميزات
- المميزات
- قليل
- حقل
- نهائي
- أخيرا
- الاسم الأول
- في حالة
- غابة
- النموذج المرفق
- تشكيل
- دورة تأسيسية
- تبدأ من
- وظيفة
- مولدات
- دولار فقط واحصل على خصم XNUMX% على جميع
- الحصول على
- خير
- حصلت
- التدرجات
- الرمادي
- التسويق
- توجيه
- يد
- يملك
- مفيد
- من هنا
- تاريخ
- كيفية
- HTTPS
- هوية
- تحديد
- تحديد
- صورة
- صور
- جدا
- التأثير
- تنفيذ
- نفذت
- استيراد
- أهمية
- أهمية
- تحسن
- تحسين
- in
- يشمل
- بما فيه
- القيمة الاسمية
- الزيادات
- الهند
- المؤشرات
- معلومات
- المدخلات
- ذكي
- إلى
- استهلالي
- IT
- انها
- وظيفة
- JPG
- م
- keras
- القفل
- معرفة
- تُشير
- ملصقات
- البلد
- الى وقت لاحق
- طبقة
- طبقات
- يؤدي
- تعلم
- تعلم
- الطول
- المكتبات
- المكتبة
- يكمن
- الحياة
- سبل العيش
- تحميل
- خسارة
- آلة
- آلة التعلم
- صنع
- الرئيسية
- في الأساس
- جعل
- يصنع
- القيام ب
- يدويا
- كثير
- أمر
- مايو..
- يعني
- قياس
- الوسائط
- المقاييس
- المعادن
- نموذج
- عارضات ازياء
- مراقبة
- الأكثر من ذلك
- كثيرا
- متعدد
- عين
- ضروري
- إحتياجات
- الجيران
- عصبي
- الخلايا العصبية
- عدد
- نمباي
- تغذية
- موضوع
- كشف الكائن
- of
- on
- ONE
- عملية
- عضوي
- OS
- أخرى
- لنا
- الناتج
- النتائج
- مملوكة
- جزء
- مسار
- صور
- مادي
- مصنع
- النباتات
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- محتمل
- قوي
- وتوقع
- توقع
- تنبؤ
- تنبؤات
- يقدم
- الطباعة
- المشكلة
- معالجة
- إنتاج
- المقترح
- ويوفر
- نشرت
- بحت
- جودة
- عشوائية
- ربف
- تراجع
- اعتمد
- تقرير
- هؤلاء
- المحتجزة
- عائد أعلى
- الروبوتات
- النوع
- جذر
- نفسه
- SAND
- النطاقات
- علوم
- انظر تعريف
- اختيار
- باكجات
- ضبط
- ينبغي
- أظهرت
- منذ
- عزباء
- الموقع
- سمارت
- So
- تربة
- مكاني
- محدد
- سرعة
- التراص
- ملخص الحساب
- خطوات
- مناسب
- زودت
- الدعم
- المساحة
- SVC
- نظام
- مهمة
- تكنولوجيا
- tensorflow
- الاختبار
- من
- أن
- •
- من مشاركة
- منهم
- then
- هناك.
- تشبه
- هم
- عبر
- استهلاك الوقت
- إلى
- أداة
- موضوع
- تقليدي
- قادة الإيمان
- نوع
- أنواع
- فهم
- الوحدات
- غير مرغوب فيه
- تستخدم
- مستعمل
- استخدام
- التحقق من صحة
- القيم
- وكان
- مياه
- طريق..
- we
- ويب بي
- عشب
- ابحث عن
- ما هي تفاصيل
- التي
- في حين
- لماذا
- سوف
- مع
- أعمال
- X
- أصفر
- العائد
- عائدات
- لصحتك!
- زفيرنت