> ## Documentation Index
> Fetch the complete documentation index at: https://docs.t3gemstone.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Edge-AI TensorLab

> Görüntü İşleme Model Derleme Kiti

Bu bölümde [edgeai-tensorlab](https://github.com/t3gemstone/edgeai-tensorlab.git) projesi geliştirici
bilgisayarına indirilerek geliştirme kartında kullanılabilecek araçlarının kurulumu yapılacaktır.

<Tip>
  Bölüm bitiminde aşağıdaki konularda tecrübe edineceksiniz.

  * edgeai-tensorlab bileşenlerinin temel kullanımını deneyimlemek
  * edgeai-tensorlab ile veri etiketleme ve model derlemeleri yapmak
</Tip>

<Steps>
  <Step title="edgeai-tensorlab'ı indir">
    Ubuntu üzerinde `git clone` işlemi yaparak edgeai-tensorlab projesini indir
  </Step>

  <Step title="Gereksinimleri Kur">
    Derleme işlemi yapabilmek için gereksinimleri `setup.sh` isimli scripti çalıştırarak kur
  </Step>

  <Step title="Kütüphane Kurulumlarını Tamamla">
    edgeai-tensorlab içerisindeki araçları kurulumunu tamamlayarak sistemi hazır hale getir
  </Step>
</Steps>

# 1. Hazırlık

Derleme işlemleri Ubuntu 22.04 GNU/Linux dağıtımı içeren bilgisayar ile yapıldı. Debian, Fedora, Pardus gibi
dağıtımların da kullanılması mümkün olmakla birlikte ilk kez buna benzer derleme araçları kullananlar için
Ubuntu 22 veya Ubuntu 24 daha uygun olacaktır.

### 1.1. Bilgisayar Gereksinimleri

1. Ubuntu 22 veya Ubuntu 24 bilgisayar
2. En az 8GB RAM
3. En az 10GB kullanılabilir boş disk alanı

Gemstone SDK `Docker` ve `Devbox` gibi araçlara ihtiyaç duymaktadır. Aşağıdaki komutlarla SDK
projesi klonlandıktan sonra içerisinde bulunan `setup.sh` isimli script bu kurulumları otomatik yapmaktadır.

<Frame>
  ```mermaid theme={"system"}
  flowchart
      n1@{ label: "**Projeyi indir**" } --- n2@{ label: "**Gereksinimleri Kur**" }
      n2 --- n3@{ label: "**Devbox Shell Aktifleştir**" }
      n3 --- n4@{ label: "Distrobox ile Veri Etiketleme ve Model Derleme Ortamını Hazırla." }
      n5@{ label: "Distrobox ile EdgeAI Label Studio Paket Kurulumlarını Tamamla" } --- n6@{ label: "Label Studio ile Veri Etiketle" }
      n6 --- n7@{ label: "Edge AI Model Maker ile Model Derle" }
      n4 --> n5
      n1@{ shape: rounded}
      n3@{ shape: hex}
      n4@{ shape: hex}
      n5@{ shape: hex}
      style n1 fill:#FFDE59
      style n7 stroke-width:1px,stroke-dasharray:5 5
  	  style n6 stroke-width:1px,stroke-dasharray:5 5
  ```
</Frame>

### 1.2. Projeyi İndir

Ubuntu üzerinde herhangi bir klasörde Terminal açarak aşağıdaki gibi `git clone` komutu ile projeyi klonlayınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  git clone https://github.com/t3gemstone/edgeai-tensorlab.git
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ git clone https://github.com/t3gemstone/edgeai-tensorlab.git
  Cloning into 'edgeai-tensorlab'...
  remote: Enumerating objects: 386468, done.
  remote: Counting objects: 100% (442/442), done.
  remote: Compressing objects: 100% (101/101), done.
  remote: Total 386468 (delta 389), reused 344 (delta 341), pack-reused 386026 (from 2)
  Receiving objects: 100% (386468/386468), 675.93 MiB | 29.93 MiB/s, done.
  Resolving deltas: 100% (280871/280871), done.
  Updating files: 100% (15274/15274), done.
  ubuntu@host:~$
  ```
</CodeGroup>

### 1.3. Gereksinimleri Kur

Klonlama işlemi sonrası aynı terminal ekranından `cd edgeai-tensorlab` komutu ile klasöre girerek `setup.sh`
scriptini çalıştırma işlemini yapınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  cd edgeai-tensorlab
  ./setup.sh
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ cd edgeai-tensorlab/
  ubuntu@host:edgeai-tensorlab$ ./setup.sh 

  🚀 T3 Gemstone Vision Process Model Development Kit

    This script downloads and installs the necessary packages 📦 
    to develop the vision process model for T3 Gemstone boards.
    Powered by Jetify Devbox, Distrobox, Love and Passion.

  → requirements...
  ✓ requirements... [DONE]
  → docker...
  ✓ docker... [DONE]
  ✓ docker-permissions... [DONE]
  → devbox...
  ✓ devbox... [DONE]

  What's the next?
    1. Learn how to build 🌍 a new world
      Read the docs at https://docs.t3gemstone.org

    2. Get help and give feedback
      Join our community at https://community.t3gemstone.org
  ```
</CodeGroup>

<Warning>
  Docker isimli uygulama daha önce sisteminizde kurulu değilse; ilk kez kuruyorsanız, Bilgisayar kullanıcı oturumunu
  kapatarak yeniden giriş yapmayı unutmayınız.
</Warning>

# 2. Derleme

Gereksinim kurulum scriptini tamamladıktan sonra Terminal'den sdk klasörü içerisindeyken Devbox Shell aktifleştirerek
derleme adımlarına başlayabilirsiniz.

### 2.1. Devbox Konsolunu Aktifleştir

Ubuntu paketlerinden farklı versiyonlar içerebilen yazılım paket yönetim sistemi olan **Devbox**'ı aktifleştirerek
edgeai-tensorlab için gerekli indirme işlemlerini ve kurulumları tamamlanmasını sağlayınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  devbox shell
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ cd edgeai-tensorlab
  ubuntu@host:edgeai-tensorlab$ devbox shell
  Starting a devbox shell...
  📦 devbox:edgeai-tensorlab>
  ```
</CodeGroup>

### 2.2. Derleme Ortamını Hazırla

Aşağıdaki komut aracılığıyla Distrobox kurulum işlemini gerçekleştiriniz.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task box
  ```

  ```bash Output lines theme={"system"}
  📦 devbox:edgeai-tensorlab> task box
  task: [box] distrobox-list | grep -q 'gemstone-edgeai' || docker build -f Dockerfile -t gemstone-edgeai:latest .
  [+] Building 0.1s (9/9) FINISHED                                 docker:default
  => [internal] load build definition from Dockerfile                       0.0s
  => => transferring dockerfile: 1.21kB                                     0.0s
  => [internal] load metadata for docker.io/library/ubuntu:22.04            0.0s
  => [internal] load .dockerignore                                          0.0s
  => => transferring context: 2B                                            0.0s
  => [1/5] FROM docker.io/library/ubuntu:22.04                              0.0s
  => CACHED [2/5] RUN apt-get update &&     apt-get upgrade -y &&     apt-  0.0s
  => CACHED [3/5] RUN sed -i 's/pam_unix\.so obscure/pam_unix.so minlen=1   0.0s
  => CACHED [4/5] RUN echo gemstone > /etc/hostname                         0.0s
  => CACHED [5/5] RUN curl --location https://taskfile.dev/install.sh | su  0.0s
  => exporting to image                                                     0.0s
  => => exporting layers                                                    0.0s
  => => writing image sha256:9671fd0552dfcab17e321871b140c89b0aa242eabed98  0.0s
  => => naming to docker.io/library/gemstone-edgeai:latest                  0.0s
  task: [box] distrobox-assemble create --file distrobox.ini
  - Creating gemstone-edgeai...
  Creating 'gemstone-edgeai' using image gemstone-edgeai	 [ OK ]
  Distrobox 'gemstone-edgeai' successfully created.
  To enter, run:

  distrobox enter gemstone-edgeai

  Successfully copied 2.05kB to /tmp/gemstone-edgeai.os-release
  Starting container...                   	 [ OK ]
  Installing basic packages...            	 [ OK ]
  Setting up devpts mounts...             	 [ OK ]
  Setting up read-only mounts...          	 [ OK ]
  Setting up read-write mounts...         	 [ OK ]
  Setting up host's sockets integration...	 [ OK ]
  Integrating host's themes, icons, fonts...	 [ OK ]
  Setting up distrobox profile...         	 [ OK ]
  Setting up sudo...                      	 [ OK ]
  Setting up user groups...               	 [ OK ]
  Setting up user's group list...         	 [ OK ]
  Adding user...                          	 [ OK ]
  Ensuring user's access...               	 [ OK ]
  Setting up skel...                      	 [ OK ]
  Executing init hooks...                 	 [ OK ]
  Setting up init system...               	 [ OK ]
  Firing up init system...                	 [ OK ]

  Container Setup Complete!
  task: [box] distrobox-enter --additional-flags "--tty" --name gemstone-edgeai --no-workdir
  To run a command as administrator (user "root"), use "sudo <command>".
  See "man sudo_root" for details.

  ⚠️  First time user password setup ⚠️ 
  New password: 
  Retype new password: 
  passwd: password updated successfully
  🚀 distrobox:workdir> 
  ```
</CodeGroup>

Kurulum işleminin sonuna doğru sizlerden `⚠️  First time user password setup ⚠️` distrobox ortamınıza
bir şifre vermeniz istenecektir. Derleme işlemlerini yaparken Terminalden hangi konsol içerisinde bulunduğunuzu
ayırt edebilmeniz için bilgisayarınızın şifresinden farklı olarak 1 karakterlik şifre seçebilirsiniz.
Son olarak `🚀 distrobox:workdir>` satırını gördüğünüzde artık Gemstone Görüntü İşleme modelleri hazırlamak için hazırsınız!

### 2.3. Paket Kurulumlarını Tamamla

Label Studio ve Edge AI Model Maker için gerekli olan kurulumları tamamlayınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task install
  ```

  ```bash Output lines theme={"system"}
  📦 devbox:edgeai-tensorlab> task box
  task: [box] distrobox-list | grep -q 'gemstone-edgeai' || docker build -f Dockerfile -t gemstone-edgeai:latest .
  [+] Building 0.1s (9/9) FINISHED                                 docker:default
  => [internal] load build definition from Dockerfile                       0.0s
  => => transferring dockerfile: 1.21kB                                     0.0s
  => [internal] load metadata for docker.io/library/ubuntu:22.04            0.0s
  => [internal] load .dockerignore                                          0.0s
  => => transferring context: 2B                                            0.0s
  => [1/5] FROM docker.io/library/ubuntu:22.04                              0.0s
  => CACHED [2/5] RUN apt-get update &&     apt-get upgrade -y &&     apt-  0.0s
  => CACHED [3/5] RUN sed -i 's/pam_unix\.so obscure/pam_unix.so minlen=1   0.0s
  => CACHED [4/5] RUN echo gemstone > /etc/hostname                         0.0s
  => CACHED [5/5] RUN curl --location https://taskfile.dev/install.sh | su  0.0s
  => exporting to image                                                     0.0s
  => => exporting layers                                                    0.0s
  => => writing image sha256:9671fd0552dfcab17e321871b140c89b0aa242eabed98  0.0s
  => => naming to docker.io/library/gemstone-edgeai:latest                  0.0s
  task: [box] distrobox-assemble create --file distrobox.ini
  - Creating gemstone-edgeai...
  Creating 'gemstone-edgeai' using image gemstone-edgeai	 [ OK ]
  Distrobox 'gemstone-edgeai' successfully created.
  To enter, run:

  distrobox enter gemstone-edgeai

  Successfully copied 2.05kB to /tmp/gemstone-edgeai.os-release
  Starting container...                   	 [ OK ]
  Installing basic packages...            	 [ OK ]
  Setting up devpts mounts...             	 [ OK ]
  Setting up read-only mounts...          	 [ OK ]
  Setting up read-write mounts...         	 [ OK ]
  Setting up host's sockets integration...	 [ OK ]
  Integrating host's themes, icons, fonts...	 [ OK ]
  Setting up distrobox profile...         	 [ OK ]
  Setting up sudo...                      	 [ OK ]
  Setting up user groups...               	 [ OK ]
  Setting up user's group list...         	 [ OK ]
  Adding user...                          	 [ OK ]
  Ensuring user's access...               	 [ OK ]
  Setting up skel...                      	 [ OK ]
  Executing init hooks...                 	 [ OK ]
  Setting up init system...               	 [ OK ]
  Firing up init system...                	 [ OK ]

  Container Setup Complete!
  task: [box] distrobox-enter --additional-flags "--tty" --name gemstone-edgeai --no-workdir
  To run a command as administrator (user "root"), use "sudo <command>".
  See "man sudo_root" for details.

  ⚠️  First time user password setup ⚠️ 
  New password: 
  Retype new password: 
  passwd: password updated successfully
  🚀 distrobox:workdir> 
  ```
</CodeGroup>

# 3. Son

Bu bölümü tamamlayarak; Gemstone görüntü işleme modelleri hazırlama ortamını kurdunuz.

<Check>
  Sonraki bölüme geçerek veri etiketleme ve Gemstone kartları için model derlemeye başlayabilirsiniz.
</Check>
