dimhold.by
← Артыкулы

У адным адкрытым запісе ўзровень сігналу Wi-Fi заўважае таго, хто ходзіць, але амаль не бачыць таго, хто сядзіць

Я не раз чытаў, што Wi-Fi бачыць людзей праз сцены. У агульных рысах я ў гэта верыў. Цела ў асноўным вада, вада паглынае 2,4 ГГц, значыць чалавек у пакоі павінен мяняць сігнал. Гэты сігнал і так паказвае любы кліент Wi-Fi, iw dev wlan0 link друкуе яго ў dBm. Калі гэтага ліку дастаткова, зразумець, ці пусты пакой, можна без камеры і без новага жалеза.

Што насамрэч паказвае адзін такі лік, я ні разу не правяраў. Жалеза для нармальнай праверкі ў мяне таксама няма, таму я ўзяў чужыя запісы.

Даныя

Себасціян Шойрэр з University College Cork выклаў набор даных на Zenodo ў 2020 годзе. Запісаны ён у ліпені 2018 года з дапамогай Intel 5300 CSI Tool. У кожным пакоі стаяць кропка доступу і 3 кліенты на Raspberry Pi. Для кожнага пакета на кожнай звязцы кропкі доступу з кліентам у файле ёсць узровень сігналу на 3 антэнах і ўзмацненне прымача. Чалавек быў звонку, сядзеў у пакоі або хадзіў па ім. Сядзенне і хада ідуць блокамі прыкладна па 5 хвілін, пустыя прамежкі доўжацца ад 5 да 14 хвілін. Час кожнай змены запісаны ў файле разметкі.

З 4 пакояў я ўзяў 2, у якіх удзельнічае толькі адзін чалавек. Гэта 6 звязак і 3 дні на пакой. На пакой у разметцы каля 3 гадзін сядзення, ад 77 да 87 хвілін пустога пакоя і менш за гадзіну хады. Для часткі гэтых хвілін запісу няма. Хвіліны ў дзвярах і ў калідоры я выкінуў.

Набор дае сырыя лікі для кожнай антэны. Я перавёў іх у dBm гэтак жа, як гэта робіць get_total_rss.m з самога інструмента: скласці магутнасць 3 антэн, адняць 44 і ўзмацненне. У сярэднім звязка шле каля 95 або 155 пакетаў у секунду, залежна ад пакоя. Я ўсярэдніў іх да аднаго значэння ў секунду, прыкладна столькі паказвае індыкатар сігналу ў ноўтбуку. Далей глядзеў вокны па 10 секунд. Для кожнага акна ўзяў раскід і сярэдняе.

Хаду відаць адразу

Калі чалавек ходзіць, медыянны раскід у акне вырастае ў 8 разоў на адной звязцы і ў 21 раз на іншай. У пустым пакоі медыянны раскід акна складае ад 0,04 да 0,06 dB, а пры хадзе ад 0,45 да 0,95 dB. Лікі маленькія, але пусты пакой вельмі ціхі.

пуста сядзіць ходзіць сядзіць пуста −59 −55 −51 0 хв 10 хв 20 хв 30 хв dBm
Пакой 2.60, звязка з кліентам 4, 23 ліпеня 2018 года, адно значэнне ў секунду. Заліўкай адзначаны час, калі чалавек ходзіць.

Каб з гэтага выйшаў дэтэктар, патрэбны быў парог. Для кожнага дня я браў вокны пустога пакоя за 2 іншыя дні на той жа звязцы. Парог я ставіў так, каб вышэй за яго апынуліся 5% з іх. Значыць, памылковая трывога павінна быць прыкладна ў 5% пустых вокнаў. Выйшла ад 4,3% да 8,5%, у другім пакоі больш. Хада перавысіла парог у 80% вокнаў на горшай звязцы і ў 99% на лепшай.

Гэтая частка сыходзіцца з тым, што я чытаў. Уілсан і Патвары пабудавалі сваё сачэнне “праз сцены” на дысперсіі ўзроўню сігналу, артыкул выйшаў у 2011 годзе. Аўтары гэтага набору займаліся распазнаваннем прысутнасці і руху.

Чалавек, які сядзіць

Калі чалавек сядзіць, той жа парог перавысілі 12% вокнаў на горшай звязцы і 43% на лепшай. Гэта прыкметна больш, чым у пустога пакоя, так што цела ўсё ж відаць. Але нават на лепшай звязцы больш за палову вокнаў з чалавекам унутры выглядаюць пустымі.

0% 25% 50% 75% 100% звязка 128a · 54 звязка 128a · 56 звязка 128a · 58 звязка 260 · 4 звязка 260 · 6 звязка 260 · 8 пуста сядзіць ходзіць
Парог узяты на 95-м працэнтылі раскіду ў пустым пакоі за 2 іншыя дні той жа звязкі.

Наступная думка была такая: адказ раз на 10 секунд нікому не патрэбны. Датчык руху ў калідоры не выключае святло яшчэ некалькі хвілін пасля таго, як вас убачыў. Я паспрабаваў тое ж правіла: пакой заняты, калі за апошнія 5 хвілін хоць адно акно было вышэй за парог. Правіла лічыла пусты пакой занятым у 42% яго вокнаў на адной звязцы і ў 82% на іншай. Я даволі доўга шукаў памылку. Часткова справа была ў сцэнарыі запісу, бо пусты блок пачынаецца адразу пасля сыходу чалавека. Але нават калі я ўлічваў за апошнія 5 хвілін толькі трывогі самога пустога пакоя, ён лічыўся занятым ад 18% да 60% часу.

Таму я пачаў лічыць па цэлых блоках. Блок заўважаны, калі хаця б адно акно ўнутры яго вышэй за парог. З парогам, які прапускае 5% пустых вокнаў, кожная звязка заўважыла ад 23 да 31 са сваіх 30 або 31 блока сядзення. Яна ж заўважыла ад 4 да 7 са сваіх 9 або 11 пустых блокаў. 5% на акно гучыць няшмат, але ў пустым блоку ад 5 да 7 хвілін ад 30 да 45 вокнаў. Тады я падняў парог да самага вялікага раскіду сярод пустых вокнаў іншых дзён. Заўважаным застаўся толькі 1 пусты блок на звязку, але і заўважаных блокаў сядзення засталося ад 5 да 21 прыкладна з 30.

Калі я ўпершыню так лічыў, звязкі аднаго пакоя цалкам прапусцілі 2 з 9 блокаў хады. Пры 99% вокнаў з хадой над парогам такога быць не магло. Высветлілася, што для гэтых блокаў у пакоі няма запісу ўвогуле, на ўсіх 3 звязках. Я выкінуў усе блокі, дзе даныя ёсць менш чым у паловы вокнаў.

Узровень зрушваецца сам

Другая ідэя была пра сярэдняе. Калі чалавек паглынае частку сігналу, узровень павінен знізіцца, пакуль ён сядзіць у пакоі. Унутры аднаго дня сярэдняе пры сядзенні адрозніваецца ад сярэдняга пустога пакоя на велічыню ад −1,41 да +0,69 dB. Знак мяняецца паміж звязкамі і нават паміж днямі на адной звязцы. У 8 выпадках з 18 узровень вырас.

На 5 звязках з 6 узровень пустога пакоя паміж днямі мяняўся мацней, чым яго зрушваў чалавек на той жа звязцы. На адной звязцы ўзровень пустога пакоя ў першы дзень быў −51,85 dBm, а ў трэці −48,42, пры тым што чалавек па разметцы адсутнічаў. Што яго зрушыла, я не ведаю. Дзверы, перасунутае крэсла або людзі ў суседнім пакоі мяняюць шлях сігналу. Можа ўплываць і само абсталяванне.

0 dB 1 dB 2 dB 3 dB 4 dB звязка 128a · 54 3,02 0,65 звязка 128a · 56 2,14 1,11 звязка 128a · 58 1,37 0,69 звязка 260 · 4 0,62 0,54 звязка 260 · 6 0,63 1,41 звязка 260 · 8 3,42 0,86 пуста, паміж днямі сядзіць, у той жа дзень
На 5 звязках з 6 узровень пустога пакоя паміж днямі мяняецца мацней, чым яго зрушвае чалавек, які сядзіць, у межах аднаго дня.

Адно мяне здзівіла. Я паспрабаваў яшчэ лічыць раскід па сырых пакетах, а не па сярэдніх за секунду. Чакаў, што больш даных дапаможа. Для сядзення на ўсіх 6 звязках стала горш. Падазраю, што чалавек, які сядзіць, рухаецца павольна, а ўсярэдненне прыбірае толькі хуткі шум, але я гэтага не правяраў.

Што засталося неправераным

  • Сапраўдная кватэра. Гэта 2 універсітэцкія пакоі 2018 года і адзін чалавек, які мяняў стан кожныя 5 хвілін. Чалавека, які гадзіну чытае і не рухаецца, хутчэй за ўсё, убачыць цяжэй.
  • Некалькі звязак адразу. У наборы 3 звязкі на пакой, а я глядзеў кожную асобна. Радыётамаграфія аб’ядноўвае шмат звязак, а CSI у тым жа наборы дае 30 паднясучых замест аднаго сумарнага ліку. Хутчэй за ўсё, абодва спосабы бачаць больш, але я не спрабаваў.
  • Дыханне. Чалавек, які не рухаецца, усё роўна дыхае. Патвары з калегамі выявілі дыханне ва ўзроўні сігналу ў 2014 годзе з дапамогай сеткі з многіх звязак. Яны пішуць, што адна звязка надзейна яго не выяўляе. Пазней яго выявілі ў CSI. Тут я яго не шукаў.
  • Іншыя сеткавыя карты. Intel 5300 дае ўзровень кожнай антэны з дакладнасцю да цэлага dB. Іншая карта або тэлефон могуць даць іншы вынік.