Smart glasses, miniature cameras, and smartphone apps are striving to replace traditional walking sticks and guide dogs for the blind and visually impaired.
Artificial intelligence technologies are not solely for entertainment; they are also transforming industries. They are instrumental in coding, diagnosing X-rays, and monitoring crops. However, their reach extends even further. Today, neural networks are empowering the development of digital assistants designed to enhance the lives of the blind and visually impaired.
Machine vision, driven by neural networks, can recognize text, objects, and faces, translating this information into accessible formats, such as voice or vibrations, for the visually impaired. In this article, we will explore popular apps and gadgets tailored to the visually impaired and assess whether they can truly serve as substitutes for human vision.
Seeing AI: Microsoft's "Talking Camera"
The Microsoft Seeing AI project stands as a trailblazing mobile application designed for individuals with visual impairments. Launched seven years ago, this program continues to receive updates and remains highly popular among users.
What can Seeing AI accomplish? When the camera is activated, the app can recognize and audibly describe:
The program can also analyze photos and images, providing users with insights into their contents. Essentially, the features of Seeing AI have laid the foundation for numerous similar applications, which we will discuss in more detail later.
Why Has Seeing AI Been So Successful?
One key reason behind the success of Seeing AI is the presence of blind programmers on the application's development team who possess a profound understanding of the needs of visually impaired individuals. Notably, the development team is led by software engineer Saqib Sheikh, who lost his eyesight at the age of seven.
For years, Sheikh had a vision of a smart "talking camera" capable of verbally describing his surroundings, yet no such solutions existed. In response, he pursued a career in software development and took it upon himself to create such a program.
Saqib Sheikh joined Microsoft in 2006, initially contributing to the improvement of AI services, including the Cortana voice assistant and Bing internet search engine. By the mid-2010s, the rise of smartphones and advancements in computer vision technologies converged, allowing for the development of a functional "talking camera."
Simultaneously, Microsoft organized the Deep Vision hackathon to identify top talents in machine learning and computer vision. Over 13,000 individuals from across the globe participated, with four of them eventually joining Saqib Sheikh's team within the corporation.
"I first conceived this project during my university years. While discussing new ideas in the dorm, I mentioned, 'We should create glasses with a camera that can observe our surroundings and describe them audibly.' However, technology at that time couldn't make this vision a reality.
In 2014, Microsoft hosted its inaugural hackathon, and I revisited this idea, presenting it to competition participants. The initial prototypes were rudimentary, struggling with tasks like facial recognition and basic functions. Nevertheless, we collaborated with the corporation's leading scientists in the research department.
Deep learning technologies, algorithms, and cloud computing continuously evolved. Eventually, we succeeded in developing a program that could describe the content of photos, marking a true breakthrough."
— Saqib Sheikh, Microsoft Software Engineer, Project Manager of Seeing AI
The functional version of Seeing AI emerged in 2016, with the public iOS release taking place in July 2017. In the initial six months post-launch, the application facilitated over three million different tasks for people with visual impairments.
Currently, Seeing AI harnesses the capabilities of Azure Cognitive Services to provide textual descriptions of images, read aloud text, and more. In 2021, the app's algorithms received an upgrade through Visual Vocabulary (VIVO) technology, based on the Transformer neural network model.
As a result, the updated version of the program demonstrated twice the accuracy on images from the nocaps test set compared to its predecessor. Now, Seeing AI not only identifies objects in front of the smartphone camera (e.g., "A man and a cat") but also elucidates their interactions (e.g., "A man is petting a cat").
Seeing AI has garnered numerous awards, including the prestigious Helen Keller Award from the American Foundation for the Blind. Additionally, the Society for Blind and Visually Impaired users of Apple products recognized Seeing AI as the best application for three consecutive years (from 2017 to 2019).
Python and SQL Lead the Rankings, but Don't Disregard Older Languages
IEEE Spectrum, the journal of the American Institute of Electrical and Electronics Engineers, has released its annual programming language popularity rankings for 2023. The rankings consist of three sections:
Spectrum: This section features the primary graph displaying the popularity of programming languages among developers. It is created using manually curated data from various sources, including Google searches, the Stack Overflow forum, as well as digital libraries such as IEEE Xplore, GitHub, and Discord.
Jobs: The Jobs section highlights the demand for technology among employers. The list is compiled based on job requirements posted on platforms like CareerBuilder and IEEE Job.
Trending: This section provides insights into programming languages that are currently gaining popularity.
No Surprises: Python Leads the Way
In 2023, Python retained its top position in popularity among developers. The language's popularity has remained consistent compared to the previous year. Experts at IEEE Spectrum attribute Python's success to its widespread use among school students and the increasing number of AI-based projects.
Other factors contributing to Python's popularity include the presence of popular machine learning and data analysis frameworks in its codebase, as well as its ease of learning. Beginners often choose Python as their first language due to its straightforward syntax and the abundance of free learning resources.
However, IEEE Spectrum points out that expertise in Python alone may not be sufficient for career advancement. Looking at the Jobs ranking, SQL surpasses Python in terms of demand from employers. Nonetheless, specializing exclusively in SQL may not yield significant earnings, making it advantageous to pair it with another language like Java, C++, or Python.
Another consideration is Python's limited suitability for resource-intensive applications, where "interpreter costs remain relatively high." For such tasks, languages like Java and other C-like languages are often more appropriate.
Overall, the landscape in the Jobs ranking has shifted considerably compared to previous years. A year ago, employers showed more interest in Java developers, with SQL also in demand. However, Python's rapid rise in popularity has led to its displacement of competitors, securing the top spot among sought-after programming languages in the job market.
In the Popularity Growth ranking (Trending), Python continues to lead, as it did the previous year, followed by Java, JavaScript, C++, and SQL. According to the ranking's authors, aspiring developers can be confident that Python will remain in demand for the foreseeable future. Companies extensively employ Python in web development, machine learning, and various other domains, showing no inclination to abandon this technology.
The researchers emphasize that the software development field evolves rapidly. Therefore, it is crucial to independently monitor the industry to identify promising career paths or transitions. While rankings provide valuable insights, they can quickly become outdated, and objectively analyzing and evaluating data for them can be challenging.
When it comes to space exploration and rocket science, precision is paramount. The software that powers spacecraft, rovers, and rockets plays a crucial role in ensuring the success of missions. Both NASA (National Aeronautics and Space Administration) and SpaceX, the private aerospace manufacturer and space transportation company, rely on specialized tools and programming languages to write the code that controls their missions. In this article, we'll take a closer look at what NASA and SpaceX use to write code for their groundbreaking missions.
NASA's Coding Arsenal:
NASA has a long and storied history in space exploration, and its software development tools reflect the need for accuracy and reliability in its missions.
1. Fortran and Ada: NASA has a rich tradition of using Fortran and Ada for its mission-critical software. Fortran, developed in the 1950s, remains a staple in scientific and engineering applications. Ada, designed for safety-critical and real-time systems, is known for its reliability.
2. LabVIEW: National Instruments' LabVIEW is a graphical programming language commonly used by NASA for data acquisition, instrument control, and test automation. It's favored for its ease of use and versatility.
3. Python:In recent years, NASA has embraced Python for its simplicity and readability. Python is used for tasks such as data analysis, simulation, and web applications in support of NASA's missions.
4. Custom Solutions: Given the unique challenges of space exploration, NASA often develops custom software tailored to specific missions. These custom solutions are typically built with a focus on reliability and robustness.
SpaceX's Code Innovations:
SpaceX, led by visionary entrepreneur Elon Musk, has been pushing the boundaries of space technology with an eye toward reusability and cost-effectiveness. Their coding practices reflect this innovative spirit.
1. C++ and Python: SpaceX predominantly uses C++ for flight software development. C++ offers the performance required for real-time control systems. Python is also employed for non-time-critical tasks, such as data analysis and automation.
2. Autonomous Flight: SpaceX is known for its autonomous rocket landing and drone ship operations. This demands sophisticated algorithms and code for precise landing control, which is developed in-house.
3. Merlin Engine Software: SpaceX's Merlin rocket engines, used in the Falcon 9, are controlled by proprietary software. This highlights the company's dedication to controlling every aspect of their systems.
4. Continuous Integration and Testing: SpaceX employs modern software development practices like continuous integration and extensive testing to ensure the reliability of their code.
Common Themes:
While NASA and SpaceX may use different languages and tools, several common themes emerge in their software development practices:
1. Safety and Reliability: Both organizations prioritize safety and reliability in their code. This is paramount when human lives are at stake in space missions.
2. In-House Development: They often develop software in-house to have full control over their systems and to meet the unique demands of their missions.
3. Real-Time Control: For flight and spacecraft systems, real-time control is essential, necessitating the use of languages like C++.
4. Adaptability:Space missions are complex and ever-evolving. The flexibility of languages like Python allows for rapid adaptation to changing requirements.
The code that powers NASA and SpaceX missions represents the pinnacle of software development, where precision, reliability, and innovation are paramount. Whether it's the legacy of Fortran and Ada at NASA or SpaceX's cutting-edge use of C++ and Python, these organizations continue to push the boundaries of what is possible in space exploration through their code. The software they use and create is not just lines of text; it's the code that propels humanity into the cosmos.
In the world of high-level programming languages, names like Python, Java, and C++ are household favorites. However, before these giants emerged, there was a quiet pioneer that laid the foundation for modern programming languages – Glenny's Autocode. Often overshadowed by its successors, Glenny's Autocode holds a unique place in the history of computer programming. In this article, we'll explore the fascinating story of this forgotten gem and uncover its role in shaping the way we write code today.
The Dawn of High-Level Programming Languages:
The quest for high-level programming languages can be traced back to the early days of computing. In the mid-20th century, computers were large, complex machines, and programming them was a laborious and error-prone task. Programmers had to write machine-level code, a series of binary instructions that were specific to each computer model. This process was far from user-friendly, and a single mistake could lead to catastrophic results.
Recognizing the need for a more human-readable and efficient way to program computers, researchers began developing high-level programming languages. These languages aimed to provide a level of abstraction that made it easier for programmers to express their intentions without delving into the intricacies of machine code.
Glenny's Autocode: The Forgotten Pioneer:
Among the early high-level programming languages, Glenny's Autocode stands as one of the first. Developed by A.D. Booth and his team at the University of Cambridge in the early 1950s, Glenny's Autocode was designed for the EDSAC (Electronic Delay Storage Automatic Calculator), one of the earliest stored-program computers.
What set Glenny's Autocode apart was its groundbreaking idea of using symbolic names for operations and variables, rather than the cumbersome binary instructions required by most computers at the time. This innovation greatly simplified programming, as programmers could write code in a more natural and readable form. It marked a significant leap toward the development of modern programming languages.
The Evolution of Glenny's Autocode:
Glenny's Autocode evolved over time, with several versions and variations introduced to accommodate different computer architectures. As more high-level programming languages emerged, Glenny's Autocode remained a stepping stone in the journey towards greater abstraction and ease of programming.
The First High-Level Programming Language?
Debates about the "first" high-level programming language can be contentious, as the definition of what constitutes a high-level language has evolved over the years. However, Glenny's Autocode certainly deserves recognition for its pioneering role in making programming more accessible and intuitive.
While Glenny's Autocode may not be a household name in today's programming landscape, its contribution to the evolution of high-level programming languages cannot be overstated. It played a vital role in shaping the way we write code today by introducing the concept of symbolic names and easing the transition from machine-level code. As we celebrate the diversity of programming languages available today, let's not forget the quiet pioneer that paved the way for innovation in the world of software development. Glenny's Autocode may have been forgotten by many, but its legacy lives on in every line of high-level code we write.
IT&Tech
We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.