Foreword |
|
xv | |
Preface |
|
xvii | |
|
1 A Brief Introduction to Edge Al |
|
|
1 | (24) |
|
|
1 | (12) |
|
|
1 | (2) |
|
The Edge (and the Internet of Things) |
|
|
3 | (3) |
|
|
6 | (2) |
|
|
8 | (2) |
|
|
10 | (2) |
|
Embedded Machine Learning and Tiny Machine Learning |
|
|
12 | (1) |
|
Digital Signal Processing |
|
|
12 | (1) |
|
|
13 | (10) |
|
To Understand the Benefits of Edge AI, Just BLERP |
|
|
14 | (4) |
|
|
18 | (1) |
|
Key Differences Between Edge AI and Regular AI |
|
|
19 | (4) |
|
|
23 | (2) |
|
2 Edge AI in the Real World |
|
|
25 | (30) |
|
Common Use Cases for Edge AI |
|
|
25 | (7) |
|
Greenfield and Brownfield Projects |
|
|
26 | (1) |
|
|
27 | (5) |
|
|
32 | (9) |
|
|
32 | (2) |
|
Understanding and Controlling Systems |
|
|
34 | (2) |
|
Understanding People and Living Things |
|
|
36 | (3) |
|
|
39 | (2) |
|
Building Applications Responsibly |
|
|
41 | (12) |
|
Responsible Design and AI Ethics |
|
|
43 | (3) |
|
|
46 | (3) |
|
Technology That Harms, Not Helps |
|
|
49 | (4) |
|
|
53 | (2) |
|
3 The Hardware of Edge AI |
|
|
55 | (30) |
|
Sensors, Signals, and Sources of Data |
|
|
55 | (13) |
|
Types of Sensors and Signals |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (2) |
|
|
62 | (1) |
|
|
63 | (1) |
|
Optical, Electromagnetic, and Radiation |
|
|
64 | (1) |
|
Environmental, Biological, and Chemical |
|
|
65 | (1) |
|
|
66 | (2) |
|
|
68 | (16) |
|
Edge AI Hardware Architecture |
|
|
68 | (2) |
|
Microcontrollers and Digital Signal Processors |
|
|
70 | (5) |
|
|
75 | (2) |
|
Deep Learning Accelerators |
|
|
77 | (1) |
|
|
78 | (3) |
|
|
81 | (1) |
|
Multi-Device Architectures |
|
|
82 | (2) |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (38) |
|
|
85 | (10) |
|
Working with Data Streams |
|
|
86 | (2) |
|
Digital Signal Processing Algorithms |
|
|
88 | (5) |
|
Combining Features and Sensors |
|
|
93 | (2) |
|
Artificial Intelligence Algorithms |
|
|
95 | (26) |
|
Algorithm Types by Functionality |
|
|
96 | (5) |
|
Algorithm Types by Implementation |
|
|
101 | (15) |
|
Optimization for Edge Devices |
|
|
116 | (3) |
|
|
119 | (2) |
|
|
121 | (2) |
|
|
123 | (46) |
|
Building a Team for AI at the Edge |
|
|
123 | (13) |
|
|
124 | (2) |
|
|
126 | (2) |
|
|
128 | (1) |
|
Roles and Responsibilities |
|
|
129 | (3) |
|
|
132 | (2) |
|
|
134 | (2) |
|
|
136 | (31) |
|
|
137 | (4) |
|
|
141 | (2) |
|
|
143 | (10) |
|
Running Algorithms On-Device |
|
|
153 | (4) |
|
Embedded Software Engineering and Electronics |
|
|
157 | (5) |
|
End-to-End Platforms for Edge AI |
|
|
162 | (5) |
|
|
167 | (2) |
|
6 Understanding and Framing Problems |
|
|
169 | (32) |
|
|
169 | (3) |
|
Responsible AI in the Edge AI Workflow |
|
|
171 | (1) |
|
|
172 | (14) |
|
|
172 | (1) |
|
Do I Need to Deploy to the Edge? |
|
|
173 | (5) |
|
Do I Need Machine Learning? |
|
|
178 | (7) |
|
|
185 | (1) |
|
|
186 | (13) |
|
|
187 | (2) |
|
|
189 | (2) |
|
|
191 | (1) |
|
Technological Feasibility |
|
|
192 | (4) |
|
|
196 | (1) |
|
Planning an Edge AI Project |
|
|
197 | (2) |
|
|
199 | (2) |
|
|
201 | (66) |
|
What Does a Dataset Look Like? |
|
|
201 | (2) |
|
|
203 | (2) |
|
Datasets and Domain Expertise |
|
|
205 | (1) |
|
Data, Ethics, and Responsible AI |
|
|
206 | (4) |
|
|
208 | (1) |
|
Ensuring Domain Expertise |
|
|
209 | (1) |
|
Data-Centric Machine Learning |
|
|
210 | (1) |
|
Estimating Data Requirements |
|
|
211 | (4) |
|
A Practical Workflow for Estimating Data Requirements |
|
|
213 | (2) |
|
Getting Your Hands on Data |
|
|
215 | (5) |
|
The Unique Challenges of Capturing Data at the Edge |
|
|
217 | (3) |
|
Storing and Retrieving Data |
|
|
220 | (5) |
|
|
222 | (1) |
|
|
223 | (2) |
|
|
225 | (10) |
|
Ensuring Representative Datasets |
|
|
225 | (2) |
|
Reviewing Data by Sampling |
|
|
227 | (2) |
|
|
229 | (2) |
|
|
231 | (2) |
|
|
233 | (1) |
|
The Uneven Distribution of Errors |
|
|
234 | (1) |
|
|
235 | (30) |
|
|
235 | (11) |
|
|
246 | (2) |
|
|
248 | (7) |
|
|
255 | (1) |
|
|
256 | (5) |
|
|
261 | (2) |
|
|
263 | (2) |
|
Building a Dataset over Time |
|
|
265 | (1) |
|
|
266 | (1) |
|
8 Designing Edge AI Applications |
|
|
267 | (30) |
|
Product and Experience Design |
|
|
268 | (10) |
|
|
270 | (1) |
|
|
271 | (3) |
|
|
274 | (4) |
|
|
278 | (14) |
|
Hardware, Software, and Services |
|
|
278 | (1) |
|
Basic Application Architectures |
|
|
279 | (7) |
|
Complex Application Architectures and Design Patterns |
|
|
286 | (5) |
|
Working with Design Patterns |
|
|
291 | (1) |
|
Accounting for Choices in Design |
|
|
292 | (4) |
|
|
295 | (1) |
|
|
296 | (1) |
|
9 Developing Edge AI Applications |
|
|
297 | (20) |
|
An Iterative Workflow for Edge AI Development |
|
|
297 | (18) |
|
|
298 | (2) |
|
|
300 | (2) |
|
|
302 | (4) |
|
|
306 | (7) |
|
|
313 | (2) |
|
|
315 | (1) |
|
|
315 | (2) |
|
10 Evaluating, Deploying, and Supporting Edge AI Applications |
|
|
317 | (40) |
|
Evaluating Edge AI Systems |
|
|
317 | (21) |
|
Ways to Evaluate a System |
|
|
319 | (3) |
|
|
322 | (12) |
|
Techniques for Evaluation |
|
|
334 | (3) |
|
Evaluation and Responsible AI |
|
|
337 | (1) |
|
Deploying Edge AI Applications |
|
|
338 | (5) |
|
|
339 | (2) |
|
|
341 | (1) |
|
|
342 | (1) |
|
Supporting Edge AI Applications |
|
|
343 | (13) |
|
Postdeployment Monitoring |
|
|
343 | (7) |
|
Improving a Live Application |
|
|
350 | (3) |
|
Ethics and Long-Term Support |
|
|
353 | (3) |
|
|
356 | (1) |
|
11 Use Case: Wildlife Monitoring |
|
|
357 | (50) |
|
|
358 | (1) |
|
|
359 | (1) |
|
|
359 | (1) |
|
|
360 | (7) |
|
What Solutions Already Exist? |
|
|
360 | (1) |
|
Solution Design Approaches |
|
|
361 | (2) |
|
|
363 | (1) |
|
|
364 | (2) |
|
|
366 | (1) |
|
Define Your Machine Learning Classes |
|
|
367 | (1) |
|
|
367 | (12) |
|
|
368 | (1) |
|
Choose Your Hardware and Sensors |
|
|
369 | (1) |
|
|
370 | (2) |
|
|
372 | (3) |
|
|
375 | (1) |
|
Dataset Licensing and Legal Obligations |
|
|
376 | (1) |
|
|
376 | (1) |
|
Uploading Data to Edge Impulse |
|
|
377 | (2) |
|
DSP and Machine Learning Workflow |
|
|
379 | (13) |
|
Digital Signal Processing Block |
|
|
380 | (1) |
|
|
381 | (11) |
|
|
392 | (3) |
|
|
392 | (1) |
|
|
393 | (2) |
|
|
395 | (1) |
|
|
395 | (6) |
|
|
396 | (1) |
|
Mobile Phone and Computer |
|
|
397 | (3) |
|
|
400 | (1) |
|
|
401 | (1) |
|
|
401 | (1) |
|
Iterate and Feedback Loops |
|
|
401 | (2) |
|
|
403 | (1) |
|
|
404 | (3) |
|
|
404 | (1) |
|
|
404 | (3) |
|
12 Use Case: Food Quality Assurance |
|
|
407 | (34) |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
409 | (1) |
|
|
409 | (6) |
|
What Solutions Already Exist? |
|
|
410 | (1) |
|
Solution Design Approaches |
|
|
410 | (2) |
|
|
412 | (1) |
|
Environmental and Social Impact |
|
|
413 | (1) |
|
|
414 | (1) |
|
Define Your Machine Learning Classes |
|
|
414 | (1) |
|
|
415 | (8) |
|
|
415 | (1) |
|
Choose Your Hardware and Sensors |
|
|
416 | (1) |
|
|
417 | (1) |
|
|
417 | (1) |
|
Uploading Data to Edge Impulse |
|
|
418 | (2) |
|
|
420 | (2) |
|
Dataset Licensing and Legal Obligations |
|
|
422 | (1) |
|
DSP and Machine Learning Workflow |
|
|
423 | (6) |
|
Digital Signal Processing Block |
|
|
424 | (2) |
|
|
426 | (3) |
|
|
429 | (3) |
|
|
430 | (1) |
|
|
431 | (1) |
|
|
432 | (5) |
|
|
433 | (4) |
|
|
437 | (1) |
|
Iterate and Feedback Loops |
|
|
437 | (2) |
|
|
439 | (2) |
|
|
439 | (1) |
|
|
440 | (1) |
|
13 Use Case: Consumer Products |
|
|
441 | (30) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
442 | (6) |
|
What Solutions Already Exist? |
|
|
443 | (1) |
|
Solution Design Approaches |
|
|
443 | (2) |
|
|
445 | (1) |
|
Environmental and Social Impact |
|
|
446 | (1) |
|
|
447 | (1) |
|
Define Your Machine Learning Classes |
|
|
447 | (1) |
|
|
448 | (6) |
|
|
448 | (1) |
|
Choose Your Hardware and Sensors |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
450 | (2) |
|
|
452 | (1) |
|
Dataset Licensing and Legal Obligations |
|
|
453 | (1) |
|
DSP and Machine Learning Workflow |
|
|
454 | (9) |
|
Digital Signal Processing Block |
|
|
455 | (4) |
|
|
459 | (4) |
|
|
463 | (3) |
|
|
463 | (2) |
|
|
465 | (1) |
|
|
466 | (1) |
|
|
466 | (1) |
|
|
466 | (1) |
|
Iterate and Feedback Loops |
|
|
467 | (1) |
|
|
467 | (4) |
|
|
468 | (1) |
|
|
469 | (2) |
Index |
|
471 | |