Seberapa besar kode QR harus ada di atap saya agar satelit dapat memindainya dengan resolusi yang diizinkan hari ini?

Jan 26 2021

Katakanlah, menggunakan satelit Planet Labs

Terima kasih

Jawaban

7 uhoh Jan 28 2021 at 04:55

Seberapa besar kode QR harus ada di atap saya agar satelit dapat memindainya dengan resolusi yang diizinkan hari ini?

Katakanlah, menggunakan satelit Planet Labs

Ini adalah jawaban tambahan. Saya telah mensimulasikan piksel "QR" 6 meter yang dilihat dari luar angkasa dengan aperture 9 cm (di luar ujung kubus Dove 3U) pada panjang gelombang 450, 550, dan 650 nm, diputar pada 45 derajat dan kemudian diambil sampelnya dengan piksel 3 meter.

Ini adalah skrip yang rapuh dan rapuh tetapi berhasil.

Gambar tersebut mendukung kesimpulan utama dalam jawaban lain bahwa ini mungkin ukuran minimum untuk beberapa keandalan melihatnya dengan Dove.

Skripnya kurang optimal, saya malas dan menggunakan PIL untuk merotasi, saya dapat melakukan interpolasi dengan scipy.ndimage.map_coordinates, dan saya dapat "kabur" dengan scipy.ndimage.gaussian_filteralih - alih disk Airy yang mewah.

Rona pada gambar akhir disebabkan oleh batas difraksi bergantung panjang gelombang dari apertur, kira-kira $1.22 \lambda / D$ variasi resolusi sudut dengan panjang gelombang ke rasio bukaan.

import numpy as np
import matplotlib.pyplot as plt
import itertools
from PIL import Image
from scipy import special as spe
from scipy.ndimage import convolve

N = 5*2

data = ('111111' + '110001' + '111011' +
        '000011' + '010101' + '111111')
data = np.array([int(x) for x in data]).reshape((6, 6))
data = np.pad(data, ((6, 6), (6, 6)))

img = np.zeros((N*18, N*18, 3))

for i, j in itertools.product(np.arange(18), repeat=2):
    img[N*i:N*(i+1), N*j:N*(j+1)] = data[i, j]

pixsize = 6 # meters
scale = pixsize/N
extent = 9*N * scale * np.array([-1, 1, -1, 1])

R = 575 * 1000. # meters distance
x = 4*N * scale * np.linspace(-1, 1, 8*N)
X, Y = np.meshgrid(x, x)
q = np.sqrt(X**2 + Y**2)
wavelengths = 1E-09 * np.array([650, 550, 450])

a = 0.045 # radius of aperture in meters (looking out end of a 3U cubesat)
x = (2 * np.pi * a / wavelengths) * (q[..., None] / R)

# https://en.wikipedia.org/wiki/Airy_disk
airy = (2 * spe.j1(x) / x)**2
areas = airy.sum(axis=0).sum(axis=0)
airy /= areas

new = [convolve(img[..., i], airy[..., i]) for i in range(3)]
newarray = np.stack(new, axis=2)
newarray = np.uint8(255 * newarray/newarray.max())

newimg = Image.fromarray(newarray)
newimg45 = newimg.rotate(45)
newimg45.show()
n45 = np.array(list(newimg45.getdata())).reshape(18*2, N>>1, 18*2, N>>1, 3)
n45 = np.uint8(n45.sum(axis=(1, 3)) / (N>>1)**2)

if True:
    plt.figure()
    plt.subplot(1, 2, 1)
    plt.imshow(img, extent=extent)
    plt.title('6 meter pixels on Earth')
    plt.xlabel('meters')
    plt.subplot(1, 2, 2)
    plt.imshow(n45, extent=extent)
    plt.title('9cm aperture at 575 km, 3 m pixels')
    plt.xlabel('meters')
    plt.show()
4 uhoh Jan 27 2021 at 08:30

Seberapa besar kode QR harus ada di atap saya agar satelit dapat memindainya dengan resolusi yang diizinkan hari ini?

Katakanlah, menggunakan satelit Planet Labs

tl; dr: menggunakan 6x6 " tag augmented reality " yang dibahas dalam jawaban @ CamilleGoudeseune seperti yang ada di penjelajah Curiosity dan piksel 6 meter (resolusi minimum dua kali untuk memungkinkan terjemahan dan rotasi sewenang-wenang) pola Anda harus berukuran 36 x 36 meter agar memiliki perubahan yang baik untuk terlihat dan dipulihkan dari gambar dari PlanetLabs Dove.

Saya akan menghilangkan reflektifitas merah dan infra merah dari area terang dan mengkodekan hanya dalam panjang gelombang yang lebih pendek, karena Doves memiliki empat saluran warna yang (mungkin) terbatas difraksi dan panjang gelombang yang lebih panjang mungkin memiliki resolusi yang lebih buruk.

Cobalah untuk menarik hanya pita panjang gelombang yang lebih pendek dari pesawat ruang angkasa yang Anda targetkan untuk membuatnya "menonjol" ke pemirsa biasa, atau hanya melihat panjang gelombang tersebut di produk data akhir jika Anda mencari sendiri.


Di https://www.planet.com/products/planet-imagery/satelit atau "Doves" yang paling banyak menyediakan data untuk produk data PLANETSCOPE. Satelit tersebut dikatakan memiliki resolusi 3,7 meter dan produk datanya memiliki ukuran piksel yang disampel ulang sebesar 3 meter. Lihat juga jawaban @ djr untuk Apakah gambar-gambar ini dari Planet Labs? Apakah gambar tersedia untuk umum?

Jika Anda sangat beruntung memiliki piksel yang sejajar dengan pola QR Anda baik secara terjemahan maupun rotasi, piksel tersebut secara teoritis bisa berukuran 3 meter.

Praktisnya, dengan terjemahan dan rotasi yang berubah-ubah dari pola Anda dalam bidang gambar, Anda harus memiliki faktor setidaknya 2 jika tidak 3 lebih besar dari ini.

@Uwe mengingatkan kita bahwa kode QR kecil masih cukup besar. Ada 11 x 11 kode QR Mikro dan spasi telah menggunakan nomor piksel yang lebih kecil untuk alternatif kode QR dengan piksel yang lebih sedikit.

Untuk mereka lihat jawaban untuk:

  • Mengapa Curiosity memiliki dua gambar itu sendiri, atau salah satunya adalah kode QR?
  • jawaban ini untuk Memiliki “QR” atau 2D barcode lainnya telah digunakan di luar angkasa?

Engineering interns Tristan Schuler, left, and Greta Studier pose with 2D barcodes and a Nano Air-Bearing Simulator prototype that uses the navigation system they developed while at Marshall. Their navigation system is available as open source code on code.nasa.gov. Credits: NASA/Emmett Given